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