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;
}
原文:http://blog.csdn.net/chenyiming_1990/article/details/19126137