Java读取XML文件
import javax.xml.parsers.*;
import org.w3c.dom.Document;
import org.xml.sax.SAException;
//DOM方式解析XML文档
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = DocumentBuilderFactory.newDocumentBuilder();
Document document = builder.parse(new File(“test.xml"));
//获取根元素
Element root = document.getDocumentElement();
//获取子集元素
NodeList list = root.getElementsByTagName(“lang”);
for(int i=0;i<list.length;i++){
Element element = list.item(i);
System.out.println(“————————————————————“);
System.out.println(“id=“+element.getAttribute(“id”));
NodeList child = element.getChildNodes();
for(int j=0;j<child.getLength();j++){
Node c = (Element)child.item(j);
if(c instance Element){//过滤不可见节点 如回车
System.out.println(c.getNodeName()+ “=“ + c.getTextContent());
}
}
}
//生成xml文档
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = DocumentBuilderFactory.newDocumentBuilder();
//创建新dom对象
Document document = builder.newDocument(new File(“test.xml"));
Element root = document.createEelement(“Languages”);
root.setAttribute(“cat”,”it" );
Element lang1 = document.createEelement(“lang”);//<lang>
lang1.setAttribute(“id”,”1”); //<lang id=1>
Element name1 = document.createEelement(“name”);//<name>
Element ide1 = document.createEelement(“ide”);//<ide>
name1.setTextContent(“Java”);//<name>Java</name>
ide1.setTextContent(“IDEA”);//<ide>IDEA</ide>
lang1.appendChild(name1);
lang1.appendChild(ide1);
root.appendChild(lang1);
document.appendChild(root);
实现效果为:
<Languages cat = it>
<lang id=1>
<name>Java</name>
<ide>IDEA</ide>
</lang >
</Languages>
生成的XML文件通过字符串传输
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
//输入转换源 输出字符串
StringWriter writer = new StringWriter();
tranformer.transform(new DOMSource(document),new StreamResult(writer));
System.out.println(writer.toString());
//输入转换源 输出文件
tranformer.transform(new DOMSource(document),new StreamResult(new File(“test.xml)));
Dom4j操作xml文档
String xmlString = “<root><people>Harbor</people></root>”;
Document document = DocumentHelper.parseText(xmlString);
System.out.println(document.asXML());