XML解析--DOM解析操作

前端之家收集整理的这篇文章主要介绍了XML解析--DOM解析操作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

XML在不同的语言里解析方式都是一样的,只不过实现的语法不同而已。

基本的解析方式有两种,一种叫SAX,另一种叫DOM。

DOM是基于XML文档树结构的解析,SAX是基于事件流的解析。

DOM解析的有点在与不仅可以读取文件,本身也可以生成修改XML文件

今天来看一下DOM的解析操作:

比如有这样一个XML文件

  1. <?xml version="1.0" encoding="gb2312"?>
  2. <addresslist>
  3. <linkman>
  4. <name>小明</name>
  5. <email>sdfa@126.com</email>
  6. </linkman>
  7. <linkman>
  8. <name>王帅</name>
  9. <email>mlda@163.com</email>
  10. </linkman>
  11. </addresslist>

下面用DOM进行解析操作:


  1. package org.lxh.xml.dom;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5.  
  6.  
  7.  
  8. import javax.xml.parsers.DocumentBuilder;
  9. import javax.xml.parsers.DocumentBuilderFactory;
  10. import javax.xml.parsers.ParserConfigurationException;
  11.  
  12. import org.w3c.dom.Document;
  13. import org.w3c.dom.Element;
  14. import org.w3c.dom.NodeList;
  15. import org.xml.sax.SAXException;
  16.  
  17.  
  18. public class DOM {
  19.  
  20. /**
  21. * @param args
  22. * @throws ParserConfigurationException
  23. * @throws IOException
  24. * @throws SAXException
  25. */
  26. public static void main(String[] args) throws ParserConfigurationException,SAXException,IOException {
  27. //建立DocumentBuilderFactory,用于取得DocumentBuilder
  28. DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
  29. //通过DocumentBuilderFactory取得DocumentBuilder
  30. DocumentBuilder builder=null;
  31. builder=factory.newDocumentBuilder();
  32. //定义Document的接口对象,通过对DocumentBuilder类进行DOM树的转换操作
  33. Document doc=null;
  34. //读取指定路径的XML文件
  35. doc=(Document) builder.parse("F:"+File.separator+"test.xml");
  36. //查找linkman节点
  37. NodeList nl=((org.w3c.dom.Document) doc).getElementsByTagName("linkman");
  38. //读取第一个节点的内容
  39. for(int x=0;x<nl.getLength();x++){
  40. //循环输出每一个节点
  41. Element m=(Element) nl.item(x);
  42. System.out.println("姓名:+"m.getElementsByTagName("name").item(0).getFirstChild().getNodeValue());
  43. System.out.println("邮箱:+"m.getElementsByTagName("email").item(0).getFirstChild().getNodeValue());
  44. }
  45. }
  46.  
  47. }

输出结果是:

猜你在找的XML相关文章