今天写的代码,做下笔记:
//dom生成xml文件
package test;
import javax.xml.parsers.DocumentBuilder;
public class DOMTest2 {
private String infile = "c://people.xml";
public static void main(String args[]) {
new DOMTest2();
}
public DOMTest2() {
try {
DocumentBuilder Builder = javax.xml.parsers.DocumentBuilderFactory
.newInstance().newDocumentBuilder();
org.w3c.dom.Document doc=Builder.newDocument();
org.w3c.dom.Element root=doc.createElement("root");
org.w3c.dom.Element left=doc.createElement("left");
org.w3c.dom.Element right=doc.createElement("right");
left.appendChild(doc.createTextNode("wo shi left"));
root.appendChild(left);
root.appendChild(right);
doc.appendChild(root);
javax.xml.transform.Transformer transform = javax.xml.transform.TransformerFactory
.newInstance().newTransformer();
transform.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING,"gb2312");
transform.setOutputProperty(javax.xml.transform.OutputKeys.INDENT,"yes");
transform
.transform(
new javax.xml.transform.dom.DOMSource(
doc),
new javax.xml.transform.stream.StreamResult(
infile));
} catch (Exception e) {
System.out.print(e);
}
}
}
==================================================================================
//修改xml
package test;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class DOMTest {
private String outfile = "c://people.xml";
int i = 0;
public static void main(String args[]) {
new DOMTest();
}
public DOMTest() {
try {
DocumentBuilder Builder = javax.xml.parsers.DocumentBuilderFactory
.newInstance().newDocumentBuilder();
org.w3c.dom.Document doc = Builder.parse(outfile);
Node child;
Node next = doc.getFirstChild();
NodeList nodelist;
org.w3c.dom.Element last = doc.createElement("last");
while ((child = next) != null) {
System.out.println(next.getNodeName());
if ((nodelist = next.getChildNodes()) != null) {
while (i < nodelist.getLength()
&& (child = nodelist.item(i++)) != null) {
if (child.getNodeName().equals("left")) {
org.w3c.dom.Element newleft = doc
.createElement("newleft");
System.out.println(child.getTextContent());
newleft.appendChild(doc.createTextNode(child
.getTextContent()));
doc.getDocumentElement().replaceChild(newleft,
child);
}
}
next = next.getPreviousSibling();
}
}
//从内存中的dom保存到指定路径的文件中
javax.xml.transform.Transformer transform = javax.xml.transform.TransformerFactory
.newInstance().newTransformer();
transform.transform(new javax.xml.transform.dom.DOMSource(doc),
new javax.xml.transform.stream.StreamResult(outfile));
} catch (Exception e) {
System.out.print(e.getMessage());
}
}
}