friends.xml

  1. <span style="font-size:16px;"><?xml version="1.0" encoding="utf-8"?>
  2. <friends date="2012">
  3. <!--此处为注释-->
  4. <friend id="1">
  5. <姓名>小红</姓名>
  6. <QQ>123456789</QQ>
  7. </friend>
  8. <friend>
  9. <姓名>小平</姓名>
  10. <QQ>12345678</QQ>
  11. </friend>
  12. <friend>
  13. <姓名 mark="hello">小敏</姓名>
  14. <QQ>1234567</QQ>
  15. </friend>
  16. <friend>
  17. <姓名>小良</姓名>
  18. <QQ>987654321</QQ>
  19. </friend>
  20. <friend>
  21. <姓名>小健</姓名>
  22. <QQ>98765432</QQ>
  23. </friend>
  24. </friends>
  25. </span>

DOM   parse   XML

  1. <span style="font-size:16px;">import java.io.File ;
  2. import javax.xml.parsers.DocumentBuilderFactory ;
  3. import javax.xml.parsers.DocumentBuilder ;
  4. import org.w3c.dom.Element ;
  5. import org.w3c.dom.Document ;
  6. import org.w3c.dom.NamedNodeMap ;
  7. import org.w3c.dom.NodeList ;
  8. import org.w3c.dom.Attr ;
  9. import org.w3c.dom.Node ;
  10. import org.w3c.dom.Comment ;
  11. //利用 递归 dom 解析任何xml文档,把xml文档加载到内存,占用内存大,可随机访问
  12. public class RecursionDOM_XML
  13. {
  14. public static void main(String[] args) throws Exception
  15. {
  16. //1.获取dom解析器工厂
  17. DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance() ;
  18. //2.获取具体的dom解析器
  19. DocumentBuilder db = dbf.newDocumentBuilder() ;
  20. //获取xml文档的 根节点
  21. Document document = db.parse(new File("friends.xml") );
  22. //获取文档的 根元素节点
  23. Element e = document.getDocumentElement() ;
  24. parseXML(e) ;
  25. }
  26. public static void parseXML(Element element)
  27. {
  28. //获取 元素节点 的 信息
  29. String name = element.getNodeName() ;
  30. System.out.print("< " + name) ;
  31. //获取此元素节点的属性
  32. NamedNodeMap map = element.getAttributes() ;
  33. //获取目前element元素节点下的 孩子节点(包括空格)</span>
  1. <span style="font-size:16px;">      NodeList child = element.getChildNodes() ;
  2. if (null != map)
  3. {
  4. for (int i = 0; i < map.getLength(); i++ )
  5. {
  6. Attr attr = (Attr)map.item(i) ;
  7. String name1 = attr.getName() ;
  8. String value1 = attr.getValue() ;
  9. System.out.print(" " + name1 +"=\"" + value1 +"\"") ;
  10. }
  11. }
  12. System.out.print(" >") ;
  13. for (int j = 0; j < child.getLength() ;j++ )
  14. {
  15. Node node = child.item(j) ;
  16. //判断该节点是不是 元素节点  ,递归路口
  17. if (node.getNodeType() == Node.ELEMENT_NODE)
  18. {
  19. //开始递归
  20. parseXML((Element)node) ;
  21. }
  22. //判断该节点是不是 文本,递归出口
  23. else if (node.getNodeType() == Node.TEXT_NODE)
  24. {
  25. System.out.print(node.getNodeValue() + "") ;
  26. }
  27. //判断该节点是不是 注释
  28. else if (node.getNodeType() == Node.COMMENT_NODE)
  29. {
  30. System.out.print("<!--");
  31. Comment comment = (Comment)node ;
  32. //注释内容
  33. String data = comment.getData() ;
  34. System.out.print(data);
  35. System.out.print("-->");
  36. }
  37. }
  38. System.out.println("</" + name + ">" ) ;
  39. }
  40. }</span>

递归方式 DOM 解析(parse) XML的更多相关文章

  1. mybatis源码-解析配置文件(一)之XML的DOM解析方式

    目录 简介 Java 中 XML 文件解析 解析方式 DOM 解析 XML 新建 XML 文件 DOM 操作相关类 Java 读取 XML 文件 一起学 mybatis @ 简介 在之前的文章< ...

  2. XML 解析---dom解析和sax解析

    眼下XML解析的方法主要用两种: 1.dom解析:(Document Object Model.即文档对象模型)是W3C组织推荐的解析XML的一种方式. 使用dom解析XML文档,该解析器会先把XML ...

  3. Java Dom解析xml

    Dom解析是将xml文件全部载入,组装成一颗dom树,然后通过节点以及节点之间的关系来解析xml文件,下面结合这个xml文件来进行dom解析. <?xml version="1.0&q ...

  4. 简单谈谈dom解析xml和html

    前言 文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.html,xml都是基于这个模型构造的.这也是一个W3C推出的标准.j ...

  5. android XML解析之DOM解析方式

    DOM 解析方式步骤: 第一步:首选需要获得DOM解析器工厂实例 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance ...

  6. java xml解析方式(DOM、SAX、JDOM、DOM4J)

    XML值可扩展标记语言,是用来传输和存储数据的. XMl的特定: XMl文档必须包含根元素.该元素是所有其他元素的父元素.XML文档中的元素形成了一颗文档树,树中的每个元素都可存在子元素. 所有XML ...

  7. 用java操作XML文件(DOM解析方式)

    XML 可扩展标记语言(Extensible Markup Language),是独立于软件和硬件的传输工具. XML的作用: (1)用作配置文件 (2)简化数据共享 (3)简化数据传输 XML DO ...

  8. XML的解析方式(DOM、SAX、StAX)

    (新)  XML的解析方式(DOM.SAX.StAX) 博客分类: XML   一般来说,解析XML文件存在着两种方式,一种是event-based API,比如说象SAX,XNI. 第二种是tree ...

  9. java解析xml的方式DOM,SAX,DOM4J,JDOM,StAX

    1)DOM(JAXP Crimson解析器)DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找 特定信息. ...

随机推荐

  1. 【UOJ244】[UER7]短路

    [题目大意] (2n+1)*(2n+1)的矩形,由里到外每一层都有一个相同的值.问从左上走到右小经过的点累和的最小值. [思路] 一眼就是贪心.首先能够想到的是,权值最小的那些边要尽可能夺走,所以必定 ...

  2. 20162328WJH实验五网络编程与安全实验报告

    20162328WJH实验五网络编程与安全实验报告 一.实验五 网络编程与安全-1 结对实现中缀表达式转后缀表达式的功能 MyBC.java 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能 ...

  3. bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级 -- 分层图最短路

    1579: [Usaco2009 Feb]Revamping Trails 道路升级 Time Limit: 10 Sec  Memory Limit: 64 MB Description 每天,农夫 ...

  4. 21.多源最短路(floyd算法)

    时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 已知n个点(n<=100),给你n*n的方阵,a[i,j] ...

  5. ACM -- 算法小结(一)利用数组存放实现排序

    利用数组存放实现排序    hodj1425   321MS   2011/08 题意:输入n个数字,要求输出从大到小排序的前m个数 解题技巧:利用大数存储在数组后面,小数存储在前面,倒序输出完成从大 ...

  6. 《python学习手册》第34章 异常对象

    基于字符串的异常 python在2.6之前可以使用字符串来定义异常,并且是通过对象标识符来匹配的(即通过is 而不是==) myexc = "My excetion string" ...

  7. PAT甲级1012. The Best Rank

    PAT甲级1012. The Best Rank 题意: 为了评估我们第一年的CS专业学生的表现,我们只考虑他们的三个课程的成绩:C - C编程语言,M - 数学(微积分或线性代数)和E - 英语.同 ...

  8. Struts+HIbernate+Spring

    1.Struts 取代JSP中的控制功能,为系统添加独立的控制,采用Struts引入标签,实现JSP与后台JAVA代码的分离,JSP只负责显示,与struts.xml配合实现页面跳转 实现:接收请求, ...

  9. MOSFET enhances voltage regulator's overcurrent protection

    The classic LM317 adjustable-output linear voltage regulator offers a relatively high, if package-de ...

  10. MC34063组成DC-DC电路

    +VO的输出电压峰值可达2倍V_IN,-VO的输出电压可达-V_IN. 需要注意的是,3路的峰值电路不能超过1.5A,同时两路附加电源的输出功率和必须小于V_IN·I·(1-D), 其中I为主输出的电 ...