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);
}
- 描述: 升值
- 大小: 5.2 KB
分享到:
相关推荐
XML(eXtensible Markup Language)是一种用于标记数据的语言,它是HTML(超文本标记语言)的一个扩展,旨在传输和存储数据。本教程将深入探讨XML的基本概念、语法、解析方式以及在实际应用中的作用。 XML的设计...
4. XML解析: - DOM(Document Object Model):将整个XML文档加载到内存中,形成一棵节点树,便于遍历和操作。 - SAX(Simple API for XML):事件驱动的解析方式,逐行读取XML,只在需要时处理特定事件,适用于...
Java中的XML解析技术是开发过程中不可或缺的一部分,尤其是在处理结构化数据时。XML(eXtensible Markup Language)因其可扩展性和灵活性,常被用于存储和交换数据。在Java中,有四种主要的XML解析技术,它们分别是...
XML(eXtensible Markup Language)是一种用于标记数据的语言,它的设计目的是传输和存储数据,而非显示数据。在本教程中,我们将深入探讨XML的基本概念、语法和应用,结合源码进行实践学习。 首先,XML的全称是可...
1. **解析器**:XML解析器读取XML文档并将其转化为内存中的对象模型,如DOM(文档对象模型)或SAX(简单API for XML)。 2. **DOM**:将整个XML文档加载到内存,形成一个树形结构,方便遍历和操作。 3. **SAX**:...
本资源"iPhone iOS XML解析源代码"提供了一个深入学习和比较XML解析技术的实例,包含两种不同的解析方法,旨在帮助开发者了解它们的性能差异。 首先,我们来探讨第一种解析方式:NSXMLParser。这是Apple提供的内置...
HTTP XML文件解析是网络通信中常见的一种技术,它结合了HTTP协议和XML(可扩展标记语言)的数据格式,广泛应用于Web服务、API交互以及数据交换等领域。本文将深入探讨在线解析HTTP XML文件的相关知识点,包括HTTP...
在实际应用中,根据需求和性能考虑,可以选择合适的XML解析库和方法。例如,如果需要频繁修改XML文档,DOM可能更适合;如果处理大型XML文件,SAX或StAX会是更好的选择。结合这些库,可以高效地进行XML的读写、查询和...
oracle过程解析XML,支持超4000,并很方便的 . 出结果 oracle过程解析XML,支持超4000 oracle过程解析XML,支持超4000
在IT行业中,网络通信是至关重要的部分,而HTTP...理解HTTP协议的工作原理,掌握WinInet的API用法,以及熟悉XML解析库的使用,对于开发涉及网络通信的C++应用程序至关重要。通过实践,你可以更好地理解和掌握这些技能。
pugixml, 带有XPath支持的C++的轻量级简单和快速XML解析器 pugixml pugixml是一个 C++ XML处理库,由具有丰富遍历/修改功能的DOM和基于XML的超快速XML解析器组成,用于构造XML树和复杂的数据驱动树查询的XPath 1.0...
本资源"javascript经典特效---XML超酷页面效果一.rar"提供了一个使用JavaScript与XML结合实现的酷炫页面效果实例。 XML(Extensible Markup Language)是一种可扩展标记语言,常用于存储和传输数据。XML文件结构...
SAX 解析器将 XML 文档解析为一系列事件,每当发现特定的标签时,触发一个回调方法。SAX 解析器的优点是: * 能够立即开始解析,不需要等待所有数据被处理 * 不需要将数据存储在内存中,适合大型文档 * 选择性地...
XML(eXtensible Markup Language)是一种用于标记数据的语言,常用于存储和传输结构化数据。在本场景中,"xml-5-lucky-draw.rar_lucky" 提供的是一款基于HTML5技术的幸运抽奖器,它利用XML来组织和管理抽奖活动的...
XMLDOM将XML文档解析为一个可操作的对象树,允许开发者通过编程方式创建、修改和遍历XML文档。JavaScript和其他支持XMLDOM的编程语言可以用它来处理XML数据。 T-SQL,全称Transact-SQL,是Microsoft SQL Server...
可以使用XML解析库,如Python的`xml.etree.ElementTree`,Java的`javax.xml.parsers.DocumentBuilderFactory`,或者JavaScript的`DOMParser`。这些库提供了解析XML文档,查找特定元素,以及提取和修改数据的功能。 ...
- XML解析器负责解析XML文档,确保其符合XML标准。 - **1.3.3 浏览器和其他工具** - 大多数现代浏览器支持XML,并能直接显示或通过样式表呈现XML文档。 - **1.3.4 处理过程总结** - XML文档的处理通常涉及创建、...
XML,全称可扩展标记语言(eXtensible Markup Language),是互联网上数据交换与存储的重要格式之一。作为“无废话XML”书籍的主题,我们可以深入探讨XML的基本概念、语法特性、应用领域以及与之相关的技术。 XML的...