场景:
解析字符串类型的XML
实例代码:
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
public void resolveStringXml() {
String soap="<?xml version="1.0" encoding="UTF-8" ?>"
+"<persons>"
+"<person id="001">"
+"<name>张三</name>"
+"<age>20</age>"
+"</person>"
+"<person id="002">"
+"<name>李四</name>"
+"<age>30</age>"
+"</person>"
+"</persons>";
//读取并转换String
Reader rr=new StringReader(soap);
DocumentBuilderFactory builderFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder domBuilder=builderFactory.newDocumentBuilder();
Document document=domBuilder.parse(new InputSource(rr));
//解析XML
NodeList roots = document.getChildNodes();
Node root = roots.item(0);
if (root!=null && root.getNodeName().equals("persons")){ //persons节点
NodeList persons = root.getChildNodes();
for (int i = 0; i < persons.getLength(); i++) {
Node person = persons.item(i);
if (elem.getNodeName().equals("person")){ //person节点
String id=person.getAttributes().getNamedItem("id").getNodeValue();
NodeList nodes = elem.getChildNodes();
for (int j = 0; j < nodes.getLength(); j++) {
Node node = nodes.item(j);
if (node.getNodeName().equals("name")){ //name节点
String name = node.getNodeValue();
}else if (node.getNodeName().equals("age")){ //age节点
String age = node.getNodeValue();
}
}
}
}
}
}