在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>