您的位置:首页 > 编程语言 > Java开发

Java眼中的XML--文件读取--1 应用DOM方式解析XML

2015-08-20 00:36 716 查看
初次邂逅XML:

public class DOMTest {

public static void main(String[] args) {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder db = dbf.newDocumentBuilder();
Document d = db.parse("books.xml");
//1、根据节点名book,获取节点集合
NodeList nodelist = d.getElementsByTagName("book");
//2、遍历集合中所有的元素(节点),并强制转换为element
for (int i = 0; i < nodelist.getLength(); i++) {
Element node = (Element) nodelist.item(i);
String str = node.getAttribute("id");
System.out.println(str);
}
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}


第二种 完整代码
上面两种情况的对比归纳,理解的时候,脑子里要有XML节点的图:



3、使用DOM解析XML文件的节点名和节点值
再来看XML的代码:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book id="1">                      换行符算一个子节点,这里是第一个
<name>冰与火之歌</name>                               第二个换行符
<author>乔治马丁</author>                             第三个
<year>2014</year>                                    第四个
<price>89</price>                                    第五个,所以加上正儿八经的四个节点,一共9个子节点
</book>
<book id="2">
<name>安徒生童话</name>
<year>2004</year>
<price>77</price>
<language>English</language>
</book>
</bookstore>


下面进行解析子节点:

获取节点名



获取节点值:
因为一个节点转为Element类型之后,比如<name>冰火之歌</name>中,冰火之歌就不是该节点的值NodeValue而是该节点的子节点。



两种获取子节点的value:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: