XML文件如下!!
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<person><p>
<name>smuedward</name>
<age>18</age>
</p>
<p>
<name>edward</name>
<age>32</age>
</p>
</person>
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
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.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import org.xml.sax.SAXException;
public class TestJaxp {
public static void main(String[] args) throws SAXException, IOException,
TransformerException, ParserConfigurationException {
// getContent();
// appendNode();
// setText();
// removeNode();
listNode();
}
// 遍历所有节点!!递归实现
public static void listNode() throws ParserConfigurationException,
SAXException, IOException {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
db = dbf.newDocumentBuilder();
Document doc = db
.parse(new File(
"C:/Users/Administrator/Workspaces/MyEclipse 10/20160512Jaxp/src/person.xml"));
Node node = doc.getElementsByTagName("person").item(0);
nodeList(node);
}
public static void nodeList(Node node) {
NodeList nodelist = node.getChildNodes();
for (int i = 0; i < nodelist.getLength(); i++) {
if (nodelist.item(i).getNodeType() == Node.ELEMENT_NODE) {
if (nodelist.item(i).hasChildNodes()) {
System.out.println(nodelist.item(i).getNodeName());
nodeList(nodelist.item(i));
} else {
System.out.println(nodelist.item(i).getNodeName());
}
}
}
}
// 删除节点
public static void removeNode() throws SAXException, IOException,
TransformerException {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
try {
db = dbf.newDocumentBuilder();
Document doc = db
.parse(new File(
"C:/Users/Administrator/Workspaces/MyEclipse 10/20160512Jaxp/src/person.xml"));
Node node = doc.getElementsByTagName("sex").item(0);
node.getParentNode().removeChild(node);
// xml文件的回写
TransformerFactory tff = TransformerFactory.newInstance();
Transformer tf = tff.newTransformer();
tf.transform(
new DOMSource(doc),
new StreamResult(
"C:/Users/Administrator/Workspaces/MyEclipse 10/20160512Jaxp/src/person.xml"));
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 修改text内容
public static void setText() throws TransformerException, SAXException,
IOException {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
try {
db = dbf.newDocumentBuilder();
Document doc = db
.parse(new File(
"C:/Users/Administrator/Workspaces/MyEclipse 10/20160512Jaxp/src/person.xml"));
NodeList nlist = doc.getElementsByTagName("sex");
nlist.item(0).setTextContent("male");
// xml文件的回写
TransformerFactory tff = TransformerFactory.newInstance();
Transformer tf = tff.newTransformer();
tf.transform(
new DOMSource(doc),
new StreamResult(
"C:/Users/Administrator/Workspaces/MyEclipse 10/20160512Jaxp/src/person.xml"));
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 添加节点
public static void appendNode() throws TransformerException, SAXException,
IOException {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
try {
db = dbf.newDocumentBuilder();
Document doc = db
.parse(new File(
"C:/Users/Administrator/Workspaces/MyEclipse 10/20160512Jaxp/src/person.xml"));
NodeList nlist = doc.getElementsByTagName("p");
Element sex = doc.createElement("sex");
Text text = doc.createTextNode("female");
sex.appendChild(text);
Node node = nlist.item(0);
node.appendChild(sex);
// xml文件的回写
TransformerFactory tff = TransformerFactory.newInstance();
Transformer tf = tff.newTransformer();
tf.transform(
new DOMSource(doc),
new StreamResult(
"C:/Users/Administrator/Workspaces/MyEclipse 10/20160512Jaxp/src/person.xml"));
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 查询指定标签里面的内容!!
private static void getContent() throws SAXException, IOException {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = null;
try {
db = dbf.newDocumentBuilder();
Document doc = db
.parse(new File(
"C:/Users/Administrator/Workspaces/MyEclipse 10/20160512Jaxp/src/person.xml"));
NodeList nlist = doc.getElementsByTagName("name");
for (int i = 0; i < nlist.getLength(); i++) {
System.out.println(nlist.item(i).getTextContent());
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
}
}