Java 用自带dom解析器遍历叶子节点内容

时间:2023-03-09 07:41:49
Java 用自带dom解析器遍历叶子节点内容

一、XML文件config.xml,内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><xml-body>
<书架>
<书 name="xxxx"> <售价>100</售价>
<售价>99</售价>
<书名>Java就业培训教程</书名>
<作者>张孝祥</作者>
</书>
<书>
<书名>JavaScript网页开发</书名>
<作者>张孝祥</作者>
<售价>28.00元</售价>
</书> </书架> </xml-body>
二、JAVA程序
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
org.w3c.dom.Document dom=db.parse(new File("src/config.xml"));
list(dom);
}
//递归方法
public static void list(Node node){
if(node.getNodeType()==node.TEXT_NODE){
System.out.println(node.getTextContent());
}
NodeList list=node.getChildNodes();
for(int i=0;i<list.getLength();i++){
Node child=list.item(i);
list(child);
}
}

遍历叶子节点就是把NodeType设置为TEXT_NODE类型!

三、判断节点类型和获取节点的名字和值,Node对象具有以下三个方法可以实现。
getNodeType() :获取节点的类型,返回值为short类型。以下是节点类型表和对应的short值。
Java 用自带dom解析器遍历叶子节点内容

getNodeName():获取节点的名字,返回值为String类型。

 getNodeValue():获取节点的值,如果节点类型为TEXT_NODE,则返回文本值,返回值为String类型。