使用DOM方式解析XML
2016-07-12 11:00
579 查看
一、创建一个XML文件(如下图)
二、解析XML文件
三、解析结果
二、解析XML文件
public class DomTest { public static void main(String[] args) { //创建一个DocumentBuilderFactory的对象 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try { //创建DocumentBuilder对象 DocumentBuilder db = dbf.newDocumentBuilder(); //通过DocumentBuilder对象的parser方法加载books.xml文件到当前项目下 Document document = db.parse("books.xml"); //获取所有book节点的集合 NodeList booklist = document.getElementsByTagName("book"); //通过nodelist的getLength()方法可以获取bookList的长度 System.out.println("一共有"+booklist.getLength()+"本书"); //遍历每一个book节点 for(int i=0;i<booklist.getLength();i++){ System.out.println("======================开始遍历第" + (i + 1) + "本书的内容======================"); //通过 item(i)方法 获取一个book节点,nodelist的索引值从0开始 Node book = booklist.item(i); //获取book节点的所有属性集合 NamedNodeMap attrs = book.getAttributes(); System.out.println("第"+(i+1)+"本书共有"+attrs.getLength()+"个属性"); //遍历book的属性 for(int j=0;j<attrs.getLength();j++){ //通过item(index)方法获取book节点的某一个属性 Node attr = attrs.item(j); //获取属性名 String AttrName = attr.getNodeName(); //获取属性值 String AttrValue = attr.getNodeValue(); System.out.print("属性"+AttrName+"的值:"); System.out.println(AttrValue); } //解析book节点的子节点 NodeList childNodes = book.getChildNodes(); //遍历childNodes获取每个节点的节点名和节点值 for(int k=0;k<childNodes.getLength();k++){ //区分出text类型的node以及element类型的node if(childNodes.item(k).getNodeType()==Node.ELEMENT_NODE){ //获取element类型节点的节点名 System.out.print("节点:"+childNodes.item(k).getNodeName()); //获取element类型节点的节点值 System.out.println("---"+childNodes.item(k).getFirstChild().getNodeValue()); } } System.out.println("======================结束遍历第" + (i + 1) + "本书的内容======================"); } } 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 与 JSON 优劣对比
- As3.0 xml + Loader应用代码
- DVI 视频接口图文解析
- Mootools 1.2教程(2) DOM选择器
- DOM 事件流详解
- IE6不能正常解析CSS文件问题的解决方法及原因分析
- 网马生成器 MS Internet Explorer XML Parsing Buffer Overflow Exploit (vista) 0day
- ext读取两种结构的xml的代码
- Dom在ajax技术中的作用说明
- 实例解析Ruby程序中调用REXML来解析XML格式数据的用法
- Ruby中XML格式数据处理库REXML的使用方法指南
- C#自写的一个HTML解析类(类似XElement语法)
- C#中如何使用 XmlReader 读取XML文件
- C#针对xml基本操作及保存配置文件应用实例
- ruby 过程对象 解析
- Ruby使用REXML库来解析xml格式数据的方法
- Ruby程序中创建和解析XML文件的方法
- Ruby的XML格式数据解析库Nokogiri的使用进阶
- asp下查询xml的实现代码