12-002-2 XML文件的建立或者xml文件的本地输出(保存)
来源:互联网 发布:知乎 唯一视觉怎么样 编辑:程序博客网 时间:2024/05/01 12:16
图文版:http://note.youdao.com/yws/public/redirect/share?id=0a3cb7361fd8684a62ecb7226c4096ab&type=false
资源文件下载:https://yunpan.cn/OcRU7u3ftuURJy 访问密码 1b25
2.1 上面实现了xml文件的DOM解析,即xml文件数据的读取,同样DOM也能实现XML文件的生成或输出
首先需要找到一个工厂类:
javax.xml.transform.TransformerFactory //转换输出工厂类
public static TransformerFactory newInstance() //取得上面的工厂类
throws TransformerFactoryConfigurationError
public abstract Transformer newTransformer() //取得转换类
throws TransformerConfigurationException
然后找到转换类:
javax.xml.transform.Transformer
public abstract void setOutputProperties(Properties oformat) //设置程序输出文件的格式(比如编码问题)
public abstract void t
throws TransformerException
上面transform(Source xmlSource, Result outputTarget) 中有一个source输出源和输出目的地Result
public interface javax.xml.transform.Source
--javax.xml.transform.dom.DOMSource //Source的子类
-- DOMSource(Node n) //而xml的文档类型Document正是Node的子接口
public interface javax.xml.transform.Result
public class javax.xml.transform.stream.StreamResult //是以流的形式输出的为Result接口 的子类
-- public void setOutputStream(OutputStream outputStream)
2.2 现在定义一个工程来从程序中创建一个Document后保存到本地文件中同样以此文件为例
<contact>
<member id="001">
<name>小明</name>
<age>28</age>
</member>
<member id="002">
<name>小王</name>
<age>28</age>
</member>
</contact>
public class XMLWriter {
public static void main(String[] args)throws Exception {
//首先在程序中创建Document文档
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder() ;
Document document = builder.newDocument() ;
String ids[] = new String[]{"001","002"} ;
String names[] = new String[]{"小明","小王"} ;
String ages[] = new String[]{"28","26"} ;
//创建第一代 根节点
Element contactElement = document.createElement("contact") ;
for(int x=0 ;x<ids.length;x++){
//创建第二代 子节点
Element memberElement = document.createElement("member") ;
//定义属性“id”
memberElement.setAttribute("id", ids[x]);
//创建第三代子节点
Element nameELement = document.createElement("name") ;
Element ageElement = document.createElement("age") ;
//创建第四代子节点 数据节点
Text nameText = document.createTextNode(names[x]) ;
Text ageText = document.createTextNode(ages[x]) ;
//下面开始配置各个节点的父子关系
nameELement.appendChild(nameText);
ageElement.appendChild(ageText) ;
memberElement.appendChild(nameELement) ;
memberElement.appendChild(ageElement) ;
contactElement.appendChild(memberElement) ;
}
//所有节点保存到document中,由于document,element都是node子类所以也可以
//使用appendChild方法
document.appendChild(contactElement) ;
//删除一个指定属性的节点
NodeList memberList = document.getElementsByTagName("member") ;
for(int x= 0 ;x<memberList.getLength();x++){
Element memberElement = (Element)memberList.item(x) ;
if("002".equals(memberElement.getAttribute("id"))){
System.out.println("deleted id = '002'") ;
//通过当前节点找到父节点然后通过父节点再删除指定子节点
memberElement.getParentNode().removeChild(memberElement) ;
}
}
//通过上面的操作已经把所有的子节点数据以及关系保存到了内存中
//并且形成了一棵树,下面就以文件的形式保存到本地中
TransformerFactory transformFactory = TransformerFactory.newInstance() ;
Transformer transformer = transformFactory.newTransformer() ;
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
File file = new File("f:"+File.separator+"info.xml") ;
Source source = new DOMSource(document) ;
FileOutputStream out = new FileOutputStream(file) ;
Result result = new StreamResult(out) ;
transformer.transform(source, result);
}
}
0 0
- 12-002-2 XML文件的建立或者xml文件的本地输出(保存)
- SAP XML输出文件保存到本地
- SAP XML输出文件保存到本地
- Xml文件的保存
- java XML文件的保存
- 对xml文件保存的代码改进
- xml文件的建立、添加、查询
- xml文件的建立、添加、查询
- 解析本地/网络上的xml文件
- Flex的读取本地XML文件方式
- Android解析本地服务器的XML文件
- Pull解析本地的xml文件
- C++建立通讯录XML文件(包含XML文件的各种操作)
- xml文件下载到本地—XmlPullParser解析下载到本地的xml(vlc)
- dom4j输出格式化的xml文件
- Transformer输出XML文件内容是被注掉的
- 使用SAX读取XML文件的练习--(将读取的XML文件原样输出)
- XML文件或者其他文件的源路径获取方式
- BFS-记录路径
- 好久不开杂博突然发现简历里没东西可写了
- Qt开发实例-贪吃蛇
- CSS权威指南-链接伪类
- ReactJs实战-让人沮丧的HelloWorld
- 12-002-2 XML文件的建立或者xml文件的本地输出(保存)
- 第二天的打字练习
- Add Digits
- Struts2 Result详解
- PS用圆角矩形工具画出来的是实线而是虚线,哪里出问题了?
- C#设计模式—解释器模式
- 从零开始的Hadoop学习之旅
- ios多线程 - NSThread 简介
- 菜鸟的安卓之路。2016.06.24