`
longzhun
  • 浏览: 363646 次
  • 性别: 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  
大神~~~~~~膜拜下~

相关推荐

    oracle过程解析XML,支持超4000

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

    XMLParser(XML解析代码 C++版)

    我好朋友收集并且整理的XML解析工具,希望大家能用上。 特点:简单、超小、稳定 鼓励一下吧!

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

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

    超全面javaweb第4天- 20 xml的解析的简介

    超全面javaweb第4天-_20_xml的解析的简介

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

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

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

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

    TBXML, 超快速,轻量,易于使用的Mac & iOS的XML解析器.zip

    TBXML, 超快速,轻量,易于使用的Mac & iOS的XML解析器 什么是 TBXMLTBXML是一个轻量级的XML文档解析器,用 objective-c 设计,用于苹果 iPad,iPhone & iPod ( 。Mac OSX兼容) 触发器。 TBXML旨在提供最快的XML解析...

    xml文件解析2

    超级详细xml文件解析方法介绍,包含代码与说明,清楚!

    Android studio下的XML pull 解析 demo

    Android studio XML pull解析超详细说明,文章地址:http://blog.csdn.net/sinat_29398599/article/details/52785930

    Tinyxml 源代码(VC6 & VS2005)

    TinyXML是一个简单小巧,可以很容易集成到其它程序中的C++ XML解析器。 它能做些什么 简单地说,TinyXML解析一个XML文档并由此生成一个可读可修改可保存的文档对象模型(DOM)。 XML的意思是“可扩展标记语言...

    sax标准解析XML

    sax解析xml的资源很多,这个资源是本人整理的一个超标准解析xml的方式

    fast-xml-parser

    验证XML,将XML解析为JS / JSON,反之亦然,或者快速将XML解析为Nimn,而无需基于C / C ++的库并且没有回调 主要特点 语法验证XML数据 将XML转换为JSON或Nimn 将JSON转换回XML 在浏览器和CLI中与节点程序包一起...

    json和xml比较

    2. 服务器端和客户端都需要花费大量代码来解析 XML,不论服务器端和客户端代码变的异常复杂和不容易维护 3. 客户端不同浏览器之间解析 XML 的方式不一致,需要重复编写很多代码 4. 服务器端和客户端解析 XML 花费...

    java四种xml解析实例和jar包,包括dom,sax,dom4j,jdom等方式

    java四种xml解析实例和jar包,包括dom,sax,dom4j,jdom等方式 java四种xml解析实例和jar包,包括dom,sax,dom4j,jdom...是学习Java的xml解析的好例子,包括相应的dom4j.jar,jdom.jar等,自己整理的,物超所值啊,奉献上了。

    JOX实现XML和JavaBean相互转化

    许多时候需要用到XML来传输数据,实现了将XML转化为JAVA对象,而JAVA具有很容易操作的特点,从而成功绕过了XML解析问题。比如:在WebService有时需要传送JAVA对象,当定义相应的WSDL文件却较为麻烦,通过JOX可以将...

    python读取xml文件.doc

    要使用 Python 读取 XML 文件,需要使用 xml.dom.minidom 模块,该模块提供了 parse() 函数来打开 XML 文件,并将其解析成一个文档对象。 以下是一个使用 Python 读取 XML 文件的示例代码: ``` #coding=utf-8 ...

    superagent-xml2jsparser:将 XML 转换为 json 的 visionmediasuperagent 解析器

    用于将 XML 转换为 json 的解析器。 它使用 安装 使用 npm npm install superagent - xml2jsparser 动机 我需要使用超级代理访问基于 XML 的 API。 这似乎是最简单的事情 用法 var request = require ( '...

    Awake 1.0.1 个人版,增添页面排序、xml数据解析器 等功能

    xml数据解析器:通过xml数据解析器,Awake将支持Ajax技术。 说明文档中遗漏说明(复选框、主键超链用法): http://hi.baidu.com/jfheng/blog/item/4a633e005624e981e850cd5d.html Awake框架hql解析模块,支持Hql子...

    python-mwdump-tools:快速解析 Mediawiki XML 转储

    快速解析 Mediawiki XML 转储:使用简单的字符串搜索和 Python 的 elementree 的 C 实现来解析 stdin XML 转储以解析每个节点。 去做 文档 除了图像下载之外的其他解析示例 PIP 包装 特征 快速地 最外层的解析不会...

    C#做的HTML转XML工具,修复标签Well-Formed,XHTML

    C#做的HTML转XML工具,修复标签Well-Formed, 用于XHTML或者服务器端解析HTML,或者制作换模版程序。 在网站或表单,换壳,换模板的情况下很有用。

Global site tag (gtag.js) - Google Analytics