`
longzhun
  • 浏览: 369932 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

xml解析(超全)---(一)

    博客分类:
  • XML
XML 
阅读更多

Dom(文档对象模型)文档象模型(Document Object ModelDOM)是公W3C 准,它被用于与平台及言无XML 文档内容、构和式的

动态访问和更新DOM 范被设计成可与任何言一起使用

DOM 的有效使用

如果您遵循几条基本原,您使用 DOM 经验将会著提高:

l          不要使用 DOM 文档。

l          尽可能使用 XPath 点或遍文档。

l          使用的函数来更方便地使用 DOM

第一:解析.xml文件

现有user.xml

<?xml version="1.0" encoding="GB2312" ?>

<result>

<user>

  <name>龙准</name>

  <age>25</age>

</user>

<user>

  <name>廖丽</name>

  <age>22</age>

</user>

 </result>

解析代码如下:

File file=new File("D://user.xml");

//得到DOM解析器的工厂实例

DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();

//通过javax.xml.parsers.DocumentBuilderFactory实例的静态方法newDocumentBuilder()得到DOM解析器

DocumentBuilder builder=factory.newDocumentBuilder();

//解析XML文档,得到一个Document

Document docment=builder.parse(file);

//得到XML文档的根节点
//
DOM中只有根节点是一个org.w3c.dom.Element对象。

Element root=docment.getDocumentElement();

 

NodeList user=root.getElementsByTagName("user");

System.out.println("共有"+user.getLength()+"个用户,分别是:");

for(int v=0;v<user.getLength();v++){

String name=root.getElementsByTagName("name").item(v).

getFirstChild().getNodeValue();

String age=root.getElementsByTagName("age").item(v).

            getFirstChild().getNodeValue();

System.out.println(name+"   "+age);

}

打印结果:

共有2个用户,分别是:

龙准   25

廖丽   21

第二:直接解析xml字符串

StringBuffer xml=new StringBuffer("<?xml version=\"1.0\" encoding=\"GB2312\" ?> ");

        xml.append("<result>");

        xml.append("<user>");

        xml.append("<name>龙准</name>");

        xml.append("<age>25</age>");

        xml.append("</user>");

        xml.append("<user>");

        xml.append("<name>廖丽</name>");

        xml.append("<age>21</age>");

        xml.append("</user>");

        xml.append("</result>");

DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();

        DocumentBuilder builder=factory.newDocumentBuilder();

        ByteArrayInputStream bais=null;

        Document doc=null;

        bais=new ByteArrayInputStream(xml.toString().getBytes());

        if(bais!=null){

            doc=builder.parse(bais);

        }

        Element root=doc.getDocumentElement();

       

        NodeList user=root.getElementsByTagName("user");

        System.out.println("共有"+user.getLength()+"个用户,分别是:");

        for(int v=0;v<user.getLength();v++){

        String name=root.getElementsByTagName("name").item(v).

getFirstChild().getNodeValue();

        String age=root.getElementsByTagName("age").item(v).

getFirstChild().getNodeValue();

                  System.out.println(name+"   "+age);

        }

打印结果:

共有2个用户,分别是:

龙准   25

廖丽   21

解析.xml文件与直接解析xml字符串的区别:

解析.xml是:Document docment=builder.parse(file);

解析xml字符串:ByteArrayInputStream bais=null;

              Document doc=null;

              //把字符串转化成流

              bais=new ByteArrayInputStream(xml.toString().getBytes());

              if(bais!=null){

                 doc=builder.parse(bais);

               }



 

  • 描述: 升值
  • 大小: 5.2 KB
分享到:
评论
1 楼 单眼皮大娘 2011-12-13  
大神~~~~~~膜拜下~

相关推荐

    xml教程------

    XML(eXtensible Markup Language)是一种用于标记数据的语言,它是HTML(超文本标记语言)的一个扩展,旨在传输和存储数据。本教程将深入探讨XML的基本概念、语法、解析方式以及在实际应用中的作用。 XML的设计...

    XML资料大全--基础 语言 笔记课件

    4. XML解析: - DOM(Document Object Model):将整个XML文档加载到内存中,形成一棵节点树,便于遍历和操作。 - SAX(Simple API for XML):事件驱动的解析方式,逐行读取XML,只在需要时处理特定事件,适用于...

    Java中四种XML解析技术

    Java中的XML解析技术是开发过程中不可或缺的一部分,尤其是在处理结构化数据时。XML(eXtensible Markup Language)因其可扩展性和灵活性,常被用于存储和交换数据。在Java中,有四种主要的XML解析技术,它们分别是...

    XML基础教程源码-code

    XML(eXtensible Markup Language)是一种用于标记数据的语言,它的设计目的是传输和存储数据,而非显示数据。在本教程中,我们将深入探讨XML的基本概念、语法和应用,结合源码进行实践学习。 首先,XML的全称是可...

    XML---编程宝典

    1. **解析器**:XML解析器读取XML文档并将其转化为内存中的对象模型,如DOM(文档对象模型)或SAX(简单API for XML)。 2. **DOM**:将整个XML文档加载到内存,形成一个树形结构,方便遍历和操作。 3. **SAX**:...

    iPhone IOS XML解析源代码

    本资源"iPhone iOS XML解析源代码"提供了一个深入学习和比较XML解析技术的实例,包含两种不同的解析方法,旨在帮助开发者了解它们的性能差异。 首先,我们来探讨第一种解析方式:NSXMLParser。这是Apple提供的内置...

    在线解析HTTP XML文件

    HTTP XML文件解析是网络通信中常见的一种技术,它结合了HTTP协议和XML(可扩展标记语言)的数据格式,广泛应用于Web服务、API交互以及数据交换等领域。本文将深入探讨在线解析HTTP XML文件的相关知识点,包括HTTP...

    XML解析 XML操作

    在实际应用中,根据需求和性能考虑,可以选择合适的XML解析库和方法。例如,如果需要频繁修改XML文档,DOM可能更适合;如果处理大型XML文件,SAX或StAX会是更好的选择。结合这些库,可以高效地进行XML的读写、查询和...

    oracle过程解析XML,支持超4000

    oracle过程解析XML,支持超4000,并很方便的 . 出结果 oracle过程解析XML,支持超4000 oracle过程解析XML,支持超4000

    C++实现http的post发送接收数据以及xml解析

    在IT行业中,网络通信是至关重要的部分,而HTTP...理解HTTP协议的工作原理,掌握WinInet的API用法,以及熟悉XML解析库的使用,对于开发涉及网络通信的C++应用程序至关重要。通过实践,你可以更好地理解和掌握这些技能。

    pugixml, 带有XPath支持的C++的轻量级简单和快速XML解析器.zip

    pugixml, 带有XPath支持的C++的轻量级简单和快速XML解析器 pugixml pugixml是一个 C++ XML处理库,由具有丰富遍历/修改功能的DOM和基于XML的超快速XML解析器组成,用于构造XML树和复杂的数据驱动树查询的XPath 1.0...

    javascript经典特效---XML超酷页面效果一.rar

    本资源"javascript经典特效---XML超酷页面效果一.rar"提供了一个使用JavaScript与XML结合实现的酷炫页面效果实例。 XML(Extensible Markup Language)是一种可扩展标记语言,常用于存储和传输数据。XML文件结构...

    XML的四种解析器(dom,sax,jdom,dom4j)原理及性能比较,超详细

    SAX 解析器将 XML 文档解析为一系列事件,每当发现特定的标签时,触发一个回调方法。SAX 解析器的优点是: * 能够立即开始解析,不需要等待所有数据被处理 * 不需要将数据存储在内存中,适合大型文档 * 选择性地...

    xml-5-lucky-draw.rar_lucky

    XML(eXtensible Markup Language)是一种用于标记数据的语言,常用于存储和传输结构化数据。在本场景中,"xml-5-lucky-draw.rar_lucky" 提供的是一款基于HTML5技术的幸运抽奖器,它利用XML来组织和管理抽奖活动的...

    CSS、DHTML、XMLDOM、T-SQL、XPath、正则表达式等.chm文件帮助文档

    XMLDOM将XML文档解析为一个可操作的对象树,允许开发者通过编程方式创建、修改和遍历XML文档。JavaScript和其他支持XMLDOM的编程语言可以用它来处理XML数据。 T-SQL,全称Transact-SQL,是Microsoft SQL Server...

    全国省市地超全XML文件

    可以使用XML解析库,如Python的`xml.etree.ElementTree`,Java的`javax.xml.parsers.DocumentBuilderFactory`,或者JavaScript的`DOMParser`。这些库提供了解析XML文档,查找特定元素,以及提取和修改数据的功能。 ...

    XML实用大全(绝对经典)

    - XML解析器负责解析XML文档,确保其符合XML标准。 - **1.3.3 浏览器和其他工具** - 大多数现代浏览器支持XML,并能直接显示或通过样式表呈现XML文档。 - **1.3.4 处理过程总结** - XML文档的处理通常涉及创建、...

    无废话XML---劳虎

    XML,全称可扩展标记语言(eXtensible Markup Language),是互联网上数据交换与存储的重要格式之一。作为“无废话XML”书籍的主题,我们可以深入探讨XML的基本概念、语法特性、应用领域以及与之相关的技术。 XML的...

Global site tag (gtag.js) - Google Analytics