Dom(文档对象模型)文档对象模型(Document Object Model,DOM)是公认的 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);
}
![](http://dl.iteye.com/upload/attachment/506543/e54be0b8-5b5d-346c-b7f6-3e99941698d9.png)
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0050/6543/e54be0b8-5b5d-346c-b7f6-3e99941698d9-thumb.png)
- 描述: 升值
- 大小: 5.2 KB
分享到:
相关推荐
oracle过程解析XML,支持超4000,并很方便的 . 出结果 oracle过程解析XML,支持超4000 oracle过程解析XML,支持超4000
我好朋友收集并且整理的XML解析工具,希望大家能用上。 特点:简单、超小、稳定 鼓励一下吧!
pugixml, 带有XPath支持的C++的轻量级简单和快速XML解析器 pugixml pugixml是一个 C++ XML处理库,由具有丰富遍历/修改功能的DOM和基于XML的超快速XML解析器组成,用于构造XML树和复杂的数据驱动树查询的XPath 1.0...
超全面javaweb第4天-_20_xml的解析的简介
pugixml, 带有XPath支持的C 的轻量级简单和快速XML解析器 pugixml pugixml是一个 C XML处理库,由具有丰富遍历/修改功能的DOM和基于XML的超快速XML解析器组成,用于构造XML树和复杂的数据驱动树查询的XPath 1.0实现...
XML的四种解析器(dom,sax,jdom,dom4j)原理及性能比较,超详细XML的四种解析器原理及性能比较,超详细
TBXML, 超快速,轻量,易于使用的Mac & iOS的XML解析器 什么是 TBXMLTBXML是一个轻量级的XML文档解析器,用 objective-c 设计,用于苹果 iPad,iPhone & iPod ( 。Mac OSX兼容) 触发器。 TBXML旨在提供最快的XML解析...
超级详细xml文件解析方法介绍,包含代码与说明,清楚!
Android studio XML pull解析超详细说明,文章地址:http://blog.csdn.net/sinat_29398599/article/details/52785930
TinyXML是一个简单小巧,可以很容易集成到其它程序中的C++ XML解析器。 它能做些什么 简单地说,TinyXML解析一个XML文档并由此生成一个可读可修改可保存的文档对象模型(DOM)。 XML的意思是“可扩展标记语言...
sax解析xml的资源很多,这个资源是本人整理的一个超标准解析xml的方式
验证XML,将XML解析为JS / JSON,反之亦然,或者快速将XML解析为Nimn,而无需基于C / C ++的库并且没有回调 主要特点 语法验证XML数据 将XML转换为JSON或Nimn 将JSON转换回XML 在浏览器和CLI中与节点程序包一起...
2. 服务器端和客户端都需要花费大量代码来解析 XML,不论服务器端和客户端代码变的异常复杂和不容易维护 3. 客户端不同浏览器之间解析 XML 的方式不一致,需要重复编写很多代码 4. 服务器端和客户端解析 XML 花费...
java四种xml解析实例和jar包,包括dom,sax,dom4j,jdom等方式 java四种xml解析实例和jar包,包括dom,sax,dom4j,jdom...是学习Java的xml解析的好例子,包括相应的dom4j.jar,jdom.jar等,自己整理的,物超所值啊,奉献上了。
许多时候需要用到XML来传输数据,实现了将XML转化为JAVA对象,而JAVA具有很容易操作的特点,从而成功绕过了XML解析问题。比如:在WebService有时需要传送JAVA对象,当定义相应的WSDL文件却较为麻烦,通过JOX可以将...
要使用 Python 读取 XML 文件,需要使用 xml.dom.minidom 模块,该模块提供了 parse() 函数来打开 XML 文件,并将其解析成一个文档对象。 以下是一个使用 Python 读取 XML 文件的示例代码: ``` #coding=utf-8 ...
用于将 XML 转换为 json 的解析器。 它使用 安装 使用 npm npm install superagent - xml2jsparser 动机 我需要使用超级代理访问基于 XML 的 API。 这似乎是最简单的事情 用法 var request = require ( '...
xml数据解析器:通过xml数据解析器,Awake将支持Ajax技术。 说明文档中遗漏说明(复选框、主键超链用法): http://hi.baidu.com/jfheng/blog/item/4a633e005624e981e850cd5d.html Awake框架hql解析模块,支持Hql子...
快速解析 Mediawiki XML 转储:使用简单的字符串搜索和 Python 的 elementree 的 C 实现来解析 stdin XML 转储以解析每个节点。 去做 文档 除了图像下载之外的其他解析示例 PIP 包装 特征 快速地 最外层的解析不会...
C#做的HTML转XML工具,修复标签Well-Formed, 用于XHTML或者服务器端解析HTML,或者制作换模版程序。 在网站或表单,换壳,换模板的情况下很有用。