<?xml version="1.0" encoding="GBK" standalone="no"?>
<?xml-stylesheet type="text/css" href="testCss.css"?>
<!-- 注释1 -->
<topTree>
<subTree>
<object1 id="AAA 'LXH">valueOfObject1</object1>
<object2><<valueOfObject2>></object2>
<object3>valueOfObject3</object3>
</subTree>
<subTree>
<object1>valueOfObject1</object1>
<object2>valueOfObject2</object2>
<object3>valueOfObject3</object3>
</subTree>
</topTree>
package com.rt.DOM;
import java.io.File;
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;
import org.w3c.dom.NodeList;
public class DOM {
public static void main(String[] args) throws Exception{
//创建XML文件
creatXML();
//从XML中提取信息
parseXML();
}
//DOM创建XML文件
public static void creatXML() throws Exception
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.newDocument();
//准备各个节点
Element topTree = doc.createElement("topTree");
Element subTree = doc.createElement("subTree");
Element object1 = doc.createElement("object1");
Element object2 = doc.createElement("object2");
Element object3 = doc.createElement("object3");
//设置节点内容
object1.appendChild(doc.createTextNode("valueOfObject1"));
object2.appendChild(doc.createTextNode("valueOfObject2"));
object3.appendChild(doc.createTextNode("valueOfObject3"));
//设置节点关系
doc.appendChild(topTree);
topTree.appendChild(subTree);
subTree.appendChild(object1);
subTree.appendChild(object2);
subTree.appendChild(object3);
//保存XML文件
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
t.setOutputProperty(OutputKeys.ENCODING, "GBK");
DOMSource source = new DOMSource(doc);
StreamResult res = new StreamResult(new File("E:/Java/HTML_Demo/DOM_xml_Demo.xml"));
t.transform(source, res);
}
//从XML中提取信息
public static void parseXML() throws Exception
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
//XML文件地址
Document doc = builder.parse(new File("E:/Java/HTML_Demo/DOM_xml_Demo.xml"));
//查找XML中,字符串节点的名称
NodeList nl = doc.getElementsByTagName("subTree");
//循环提取nl节点中的子项目(Element继承于Node)
for(int i=0;i<nl.getLength();i++)
{
Element e = (Element)nl.item(i);
System.out.println("o1 => "+e.getElementsByTagName("object1").item(0).getFirstChild().getNodeValue());
System.out.println("o2 => "+e.getElementsByTagName("object2").item(0).getFirstChild().getNodeValue());
System.out.println("o3 => "+e.getElementsByTagName("object3").item(0).getFirstChild().getNodeValue());
System.out.println("-------");
}
}
}