org.w3c.dom 遍历xml文件的两种方法

来源:互联网 发布:奥克斯空调 知乎 编辑:程序博客网 时间:2024/04/30 04:50

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);//获得子元素namenameNode = (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;}

   



0 0
原创粉丝点击