解析XML可扩展性文档的方法

来源:互联网 发布:3d肌肉软件 编辑:程序博客网 时间:2024/05/21 06:15

解析XML可扩展性文档的方法:普通的解析法和DOM4J技术

(1):就用普通的解析法:

package com.sxt;
import java.io.FileOutputStream;
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 DocumentDemo {
public static void main(String[] args) throws Exception {
// 获取一个文本解析器的工厂类对象
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
// 获取一个文本解析器
DocumentBuilder db = dbf.newDocumentBuilder();
// 创建一个新的文本对象
Document d = db.newDocument();
// 创建root节点
Element root = d.createElement("animal");
// 创建一个子节点
Element cat = d.createElement("cat");
// 创件子子节点
Element name = d.createElement("name");
// 创建一个文本节点
name.appendChild(d.createTextNode("小白"));
Element color = d.createElement("color");
color.appendChild(d.createTextNode("黑色"));
Element type = d.createElement("type");
type.appendChild(d.createTextNode("波斯猫"));
cat.appendChild(name);
cat.appendChild(color);
cat.appendChild(type);
root.appendChild(cat);
d.appendChild(root);
// 得到转换器工厂对象
TransformerFactory transfactory = TransformerFactory.newInstance();
// 得到转换器对象
Transformer trans = transfactory.newTransformer();
//dom源对象
DOMSource source = new DOMSource(d);
//设置输出格式
trans.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
trans.setOutputProperty(OutputKeys.INDENT, "yes");
//流结果对象
StreamResult result = new StreamResult(new FileOutputStream("src/com/sxt/animal.xml"));
//转换成xml文件
trans.transform(source, result);


}


}

(2):运用了的DOM4J技术

package com.sxt;


import java.io.File;
import java.util.List;


import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;


public class Dom4jXml {
public static void main(String[] args) throws Exception {
// 创建一个dom4j的xml解析器
SAXReader sr = new SAXReader();
// 解析一个xml文件
Document d = sr.read(new File("scores.xml"));
// 获取root节点
Element re = d.getRootElement();
// 获取root节点下的所有节点
List<Element> es = re.elements();
for (Element e : es) {
// 获取子节点下的所有子节点
List<Element> list = e.elements();
for (Element ee : list) {
System.out.println(ee.getText());
}
}
}
}