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 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层关系的子节点,这个程序是怎么实现获取数据的?(可能我表达的不是那么清楚,我看有的书上写着用递归的方法,那样感觉比较好理解)
解决方案 »
- 让网站访问速度飞起来(前端篇)
- 想系统学习一下java,以前没学过;请各位多指点。。。。
- 关于Java中 JOptionPane.showMessageDialog() 不能正常显示的问题
- 一个简单的非递归转换递归问题
- Java数组取值 期待多种方法 效率要高 新手 高手一起来 并不简单
- 逻辑的VS物理的
- 请给一个用java写的telnet客户端原码,分数不够我再给
- 如何在命令提示符下执行java程序
- 怎样用jbuilder 7开发软件,开发多窗体软件,并且能和sql-server数据库相连,具体步骤,或者可以参考那些书籍,最后怎样打包发行?谢谢!
- JDialog如何传值给JFrame
- 两台在不同内网里的机器如何视频通信
- java连接SQL数据库时遇到问题:com.microsoft.sqlserver.jdbc.SQLServerException: 数据类型 text 和 v
还是一样的用Node的getChildNodes()来获取子节点列表
得到<students>
NodeList nodes = root.getChildNodes();
得到所有的<student>节点
NodeList ns = nodes.item(i).getChildNodes();
得到<name> <id> <age>节点
通过判断NodeList==null || NodeList.size() ==0 来判断是否有子节点
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();
}我感觉老师这样写有点多此一举啊?又不是ns.item(i).getFirstChild().getNodeValue();
还不如直接写 Node root = doc.getFirstChild();
NodeList nodes = root.getChildNodes();
for(int i=0;i<nodes.getLength();i++){
String s=nodes.item(i).getTextContent();
System.out.print(s+" ");
}
System.out.println();
}