在dom解析的service 中
1:在dom中創建Dom工廠,從工廠中取出builder,通過builer來獲得一份xml。
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document = builder.parse(is);
2; 獲取xml的根節點
Element rootElement = document.getDocumentElement();
NodeList nodeList = rootElement.getElementsByTagName("persons");// 得到person節點
//遍歷person節點
for (int i = 0; i < nodeList.getLength();i++) {
Element element=(Element) nodeList.item(i);
NodeList childNode=element.getChildNodes();
for (int y = 0; y < childNode.getLength(); y++) {
//遍歷person節點下面的子節點
NodeList personnode=childNode.item(y).getChildNodes();
for (int j = 0; j < personnode.getLength(); j++) {
//如果 persom下面的節點是一個元素。
if (personnode.item(j).getNodeType()==Node.ELEMENT_NODE) {
if ("name".equals(personnode.item(j).getNodeName())) {
String name=personnode.item(j).getFirstChild().getNodeValue();
if (name!=null) {
person.setName(name);
}
} if("age".equals(personnode.item(j).getNodeName())){
String age=personnode.item(j).getFirstChild().getNodeValue();
if (age!=null) {
person.setAge(Integer.parseInt(age));
}
}
}
}
xml 如下
<?xml version="1.0" encoding="utf-8"?>
<persons>
<person id="1">
<name>劉備</name>
<age>12</age>
</person>
<person id="2">
<name>關羽</name>
<age>14</age>
</person>
<person id="3">
<name>張飛</name>
<age>15</age>
</person>
</persons>