- Java code
Node root = doc.getFirstChild(); NodeList nodes = root.getChildNodes(); for(int i=0;i<nodes.getLength();i++){ NodeList ns = nodes.item(i).getChildNodes(); for(int j=0;j<ns.getLength();j++){ String s=ns.item(j).getTextContent(); System.out.print(s+" "); } System.out.println(); }
- XML code
<?xml version="1.0" encoding="UTF-8" standalone="no"?><students> <student> <name>lisi</name> <id>1001</id> <age>man</age> </student> <student> <name>zhangsan</name> <id>1002</id> <age>man</age> </student> <student> <name>wangwu</name> <id>1003</id> <age>man</age> </student> <student> <student> <name>haha</name> <student> <name>hehe</name> <id>1002</id> <age>woman</age> </student> </student> </student></students>
老师上课写了这么一个代码,是获取XLM中各个子节点中的数据的,但是我想不通的是老师只写了2个getChildNodes(),那如果有3层关系的子节点,这个程序是怎么实现获取数据的?(可能我表达的不是那么清楚,我看有的书上写着用递归的方法,那样感觉比较好理解)
------解决方案--------------------
Node root = doc.getFirstChild();
得到<students>
NodeList nodes = root.getChildNodes();
得到所有的<student>节点
NodeList ns = nodes.item(i).getChildNodes();
得到<name> <id> <age>节点
------解决方案--------------------