persons.xml 文件如下:
<?xml version="1.0" encoding="utf-8"?>
<persons>
<person>
<name>tom</name>
<age>12</age>
</person>
<person>
<name>jerry</name>
<age>13</age>
</person>
<person>
<name>kingkong</name>
<age>14</age>
</person>
</persons>
錯誤的方法1:
for(int i = 0 ; i < list.getLength(); i++){
node = list.item(i);
//name|age是子元素
nameNode = node.getChildNodes().item(0);
String name = nameNode.getTextContent();
ageNode = node.getChildNodes().item(0);
String age = ageNode.getTextContent();
}
錯誤的方法2:
for(int i = 0 ; i < list.getLength(); i++){
node = list.item(i);
//name|age是子元素
nameNode = node.getFirstChild()();
String name = nameNode.getTextContent();
ageNode = node.node.getLastChild();
String age = ageNode.getTextContent();
}
正確的方法1:
for(int i = 0; i < list.getLength(); ++i){
node = (Element) list.item(i);
//獲得子元素name
nameNode = (Element) node.getElementsByTagName("name").item(0);
String name = nameNode.getTextContent();
//獲得age子元素
ageNode = (Element) node.getElementsByTagName("age").item(0);
String age = ageNode.getTextContent();
}
正確的方法2:
for(int i = 0 ; i < list.getLength(); i++){
node = list.item(i);
//獲取name和age的值
String name = getSubElementTextByName(node.getChildNodes(),"name");
String age = getSubElementTextByName(node.getChildNodes(),"age");
}
/**
* 獲取指定元素名稱的文本
*/
private String getSubElementTextByName(NodeList childNodes, String str) {
if(childNodes != null && childNodes.getLength() > 0){
Node node = null ;
for(int i = 0 ; i < childNodes.getLength() ; i++){
node = childNodes.item(i);
if((node.getNodeType() == Node.ELEMENT_NODE)
&& (node.getNodeName().equals(str))){
return node.getTextContent();
}
}
}
return null;
}