用jdk自带的xml解析器创建xml文件
2011-01-04 21:04
309 查看
import java.io.FileOutputStream;
import java.io.PrintWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class ParseXMLTest {
public static void main(String[] args) {
String path = "src/NewFile.xml";
new ParseXMLTest().parseXml(path);
}
public void parseXml(String path) {
// 得到DOM解析器的工厂实例
// javax.xml.parsers.DocumentBuilderFactory类的实例就是我们要的解析器工厂
DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();
try {
// 通过javax.xml.parsers.DocumentBuilderFactory实例的静态方法newDocumentBuilder()得到DOM解析器
DocumentBuilder dombuilder = domfac.newDocumentBuilder();
// 把要解析的XML文档转化为输入流,以便DOM解析器解析它
// InputStream is = new FileInputStream(path);
// 解析XML文档的输入流,得到一个Document
// 由XML文档的输入流得到一个org.w3c.dom.Document对象,以后的处理都是对Document对象进行的
Document doc = dombuilder.newDocument();
// 得到XML文档的根节点
// 在DOM中只有根节点是一个org.w3c.dom.Element对象。
// Element root = doc.getDocumentElement();
//创建根节点
Element root = doc.createElement("result");
doc.appendChild(root);
//创建第二级节点
Element firstElement = doc.createElement("count");
//给节点添加值域
firstElement.appendChild(doc.createTextNode("100"));
root.appendChild(firstElement);
//创建第二级节点
Element secondElement = doc.createElement("success");
//创建第三级节点
Element secSuccessElement = doc.createElement("number");
secSuccessElement.appendChild(doc.createTextNode("90"));
secondElement.appendChild(secSuccessElement);
Element secPercentElement = doc.createElement("percent");
secPercentElement.appendChild(doc.createTextNode("90%"));
secondElement.appendChild(secPercentElement);
root.appendChild(secondElement);
//将创建的doc文档输出成文件
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(doc);
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
transformer.setOutputProperty(OutputKeys.STANDALONE, "yes");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
PrintWriter pw = new PrintWriter(new FileOutputStream("src/1.xml"));
StreamResult result = new StreamResult(pw);
transformer.transform(source, result);
} catch (Exception e) {
System.out.println("创建XML文件时异常:" + e);
}
}
}
创建的XML文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<result>
<count>100</count>
<success>
<number>90</number>
<percent>90%</percent>
</success>
</result>
import java.io.PrintWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class ParseXMLTest {
public static void main(String[] args) {
String path = "src/NewFile.xml";
new ParseXMLTest().parseXml(path);
}
public void parseXml(String path) {
// 得到DOM解析器的工厂实例
// javax.xml.parsers.DocumentBuilderFactory类的实例就是我们要的解析器工厂
DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();
try {
// 通过javax.xml.parsers.DocumentBuilderFactory实例的静态方法newDocumentBuilder()得到DOM解析器
DocumentBuilder dombuilder = domfac.newDocumentBuilder();
// 把要解析的XML文档转化为输入流,以便DOM解析器解析它
// InputStream is = new FileInputStream(path);
// 解析XML文档的输入流,得到一个Document
// 由XML文档的输入流得到一个org.w3c.dom.Document对象,以后的处理都是对Document对象进行的
Document doc = dombuilder.newDocument();
// 得到XML文档的根节点
// 在DOM中只有根节点是一个org.w3c.dom.Element对象。
// Element root = doc.getDocumentElement();
//创建根节点
Element root = doc.createElement("result");
doc.appendChild(root);
//创建第二级节点
Element firstElement = doc.createElement("count");
//给节点添加值域
firstElement.appendChild(doc.createTextNode("100"));
root.appendChild(firstElement);
//创建第二级节点
Element secondElement = doc.createElement("success");
//创建第三级节点
Element secSuccessElement = doc.createElement("number");
secSuccessElement.appendChild(doc.createTextNode("90"));
secondElement.appendChild(secSuccessElement);
Element secPercentElement = doc.createElement("percent");
secPercentElement.appendChild(doc.createTextNode("90%"));
secondElement.appendChild(secPercentElement);
root.appendChild(secondElement);
//将创建的doc文档输出成文件
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(doc);
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
transformer.setOutputProperty(OutputKeys.STANDALONE, "yes");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
PrintWriter pw = new PrintWriter(new FileOutputStream("src/1.xml"));
StreamResult result = new StreamResult(pw);
transformer.transform(source, result);
} catch (Exception e) {
System.out.println("创建XML文件时异常:" + e);
}
}
}
创建的XML文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<result>
<count>100</count>
<success>
<number>90</number>
<percent>90%</percent>
</success>
</result>
相关文章推荐
- XML解析器如何正确读取XML文件的编码的规则
- [C#]实现对XML文件的基本操作(创建xml文件,增、删、改、查 xml节点信息)
- C# 实现对XML文件的基本操作(创建xml文件,增、删、改、查 xml节点信息)
- JDK中JAXP寻找XML解析器的顺序
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- 使用dom4j创建XML文件,并读取XML内容
- dom4j创建xml文件,解析xml,写入xml文件,遍历xml文件
- JAVA创建XML文件(一)---DOM方式创建XML
- 使用JDK自带工具将类转换为xml
- 使用PHP DOM-XML创建和解析XML文件
- (转)使用XmlTextWriter与XmlTextReader访问创建和读取XML文件
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- xml系列(四)------创建xml文件
- 创建XML的解析器
- 使用JDK自带的JAXB进行类和xml的互转
- XmlTextWriter创建XML文件
- 如何正确使用PHP DOM-XML创建XML文件
- JAVA创建XML文件(二)---SAX方式创建XML
- C# 实现对XML文件的基本操作(创建xml文件,增、删、改、查 xml节点信息)zz
- <ios>封装开源库GDataXML创建XML文件