java DOM 解析
来源:互联网 发布:2016年淘宝双十一数据 编辑:程序博客网 时间:2024/06/05 06:19
调用java的api进行xml的dom解析时候,对各种xml术语不是很了解,导致理解困难.进而运用不熟悉.这次将xml术语详细解释一下,并且加入代码进行解释.完整的了解一遍.
1先看xml文件,将此文件存在项目的src包下,命名为:bookstore.xml
<bookstore> <book id="1"> <name>冰与火之歌</name> <author>乔治马丁</author> <year>2014</year> <price>89</price> </book> <book id="2"> <name>安徒生童话</name> <year>2004</year> <price>77</price> <language>English</language> </book></bookstore>
2.再看java的dom解析代码,进行详细解释,导入的包就不写了
public class parseXmlOfDom{ public static void main(String[] args){ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try{ DocumentBuilder db = dbf.newDocumentBuilder();// 传入文件路径,返回Document对象.也就是我们要操作的对象 Document d = db.parse("src/bookstore.xml");// 通过元素名称解析得到 所有子节点的集合 NodeList books = d.getElementsByTagName("book"); for(int i=0;i<books.getLength();i++){ Node book = books.item(i);// 解析得到节点 (**不是子节点**) 的属性的 map集合 NamedNodeMap mapOfAttr = book.getAttributes(); for(int j=0;j<mapOfAttr.getLength();j++){ //通过map集合返回单个节点 Node nodeOfAttr = mapOfAttr.item(j); //输出节点名称以及属性值 System.out.print( nodeOfAttr.getNodeName() ); System.out.println( nodeOfAttr.getNodeValue() ); }//for attrOfRoot// 解析子节点 NodeList childsOfBook = book.getChildNodes(); for(int l=0;l<childsOfBook.getLength;l++){ //节点共有9个,偶数节点没有内容(节点类型为Text).从0到8. if( l%2 != 0){ Node childOfBook = childsOfBook.item(l); System.out.print(childOfBook.getNodeName()); //注意:闭合标签内部被认为是子节点.此时"冰与火之歌"是子节点的节点值 Node grandchildOfBook = childOfBook.getFirstChild(); System.out.println(grandchildOfBook.getNodeValue() ); } } } }//try catch(ParserConfigurationException e){ e.printStackTrace(); }catch(SAXException e){ e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); } }//main}//class
END:
附上表格:
节点类型……..nodeName返回值 ………nodeValue返回值
Element……..element名字 ……………null
Attr…………..attr名字…………………属性值
Text…………. #text …………………节点内容
节点内容
主要是xml属性不熟悉以及java的方法作用不了解.逻辑上没有什么难度.
0 0
- JAVA解析XML DOM
- JAVA解析XML DOM
- JAVA解析XML DOM
- Java Dom解析XML
- JAVA解析XML DOM
- Java-DOM解析
- Java Dom解析xml
- Java Dom解析xml
- java dom解析xml
- JAVA dom解析xml
- Java DOM解析XML
- JAVA DOM XML解析
- Java解析XML---DOM
- Java DOM解析XML
- Java Dom解析xml
- java Xml 解析 Dom
- java DOM解析XML
- Java Dom解析xml
- ssh 无法连接到Linux
- 如何让你的简历脱颖而出
- Gradle问题
- SpringSecurity-密码错误5次锁定用户
- win2003无法访问共享文件夹处理方法
- java DOM 解析
- 欢迎使用CSDN-markdown编辑器
- 技术点详解---互联网应用如何穿越NAT
- 列表标签
- Problem--110A--Codeforces--Nearly Lucky Number
- 图示符号指南
- viewPager+多个Fragment状态保存
- WebVR简介
- MySQL server has gone away的解决方法