DOM解析XML实倒
XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<contacts>
<contact id="1">
<name>zhangsan</name>
<sex>man</sex>
<mobile>13880246907</mobile>
<group>
<id>11</id>
<name>同事</name>
</group>
</contact>
<contact id="2">
<name>lisi</name>
<sex>man</sex>
<mobile>15828587260</mobile>
<group>
<id>21</id>
<name>家人</name>
</group>
</contact>
</contacts>
DomParseXML解析XML核心代码
package com.leiht.xml.dom4xml;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import com.leiht.xml.entity.Contact;
import com.leiht.xml.entity.Group;
public class DomParseXML {
public List<Contact> parse(String fileName) {
DocumentBuilderFactory documentBuilderFactory = null;
DocumentBuilder documentBuilder = null;
Document document = null;
List<Contact> contacts = new ArrayList<Contact>();
try {
// documentBuilderFactory工厂类,
documentBuilderFactory = DocumentBuilderFactory.newInstance();
// documentBuilder:获取XMLDom实例 可以理解为获取一个XML的对象以全后续操作
documentBuilder = documentBuilderFactory.newDocumentBuilder();
// XML的整个文档,XML文档可以看作是一个树,document可以看成是树的根结点
document = documentBuilder.parse(new File(fileName));
// 这是一种便捷属性,该属性允许直接访问文档的文档元素的子节点(复制JDK文档)
Element element = document.getDocumentElement();
NodeList nodeList = element.getElementsByTagName("contact");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
Contact contact = new Contact();
//设置ID
contact.setId(Integer.parseInt(node.getAttributes()
.getNamedItem("id").getTextContent()));
//取子结点
NodeList childList = node.getChildNodes();
for(int j = 0; j < childList.getLength(); j++){
Node childItem = childList.item(j);
String tag = childItem.getNodeName();
if(tag.equals("name")) {
contact.setName(childItem.getTextContent());
}else if(tag.equals("sex")){
contact.setSex(childItem.getTextContent());
}else if(tag.equals("mobile")) {
contact.setMobile(childItem.getTextContent());
}else if(tag.equals("group")) {
NodeList groups = childItem.getChildNodes();
Group group = new Group();
for(int index = 0; index < groups.getLength(); index++){
Node groupNode = groups.item(index);
String flag = groupNode.getNodeName();
if(flag.equals("id")){
group.setId(groupNode.getTextContent());
}else if(flag.equals("name")){
group.setName(groupNode.getTextContent());
}
}
contact.setGroup(group);
}
}
contacts.add(contact);
}
} catch (Exception e) {
e.printStackTrace();
}
return contacts;
}
}
Test.java测试类代码:
package com.leiht.xml.view;
import java.util.List;
import com.leiht.xml.dom4xml.DomParseXML;
import com.leiht.xml.entity.Contact;
public class Test {
public static void main(String[] args) {
DomParseXML domParseXML = new DomParseXML();
List<Contact> contacts = domParseXML.parse("xml/contact.xml");
for(Contact contact : contacts){
System.out.println(contact);
}
}
}
分享到:
相关推荐
本篇文章将深入探讨DOM解析XML文件在Android中的应用实例。 首先,DOM解析的基本思想是将整个XML文件加载到内存中,形成一个树形结构,即DOM树。这样做的优点是解析后的数据可以方便地进行任意位置的查找和修改,但...
Java DOM 解析 XML 实例 Java DOM 解析 XML 实例是 Java 语言中常用的 XML 解析方法之一,使用 W3C 推荐的文档对象模型(Document Object Model,DOM)来解析 XML 文档。DOM 提供了一个树形结构的对象模型,通过...
**DOM4J解析XML实例详解** 在Java编程中,处理XML文档是一项常见的任务。DOM4J是一个非常流行的、强大的Java XML API,它提供了灵活且高效的方式来解析、创建、修改XML文档。本文将深入探讨如何使用DOM4J进行XML...
在这个实例中,我们将深入探讨如何使用DOM4J解析XML文件,并通过`Dom4jTest1.java`这个示例程序来理解其工作原理。 首先,我们需要了解XML(Extensible Markup Language)是一种标记语言,常用于存储和传输数据。...
使用DOMParser解析XML文档,首先需要创建一个DOMParser实例,然后调用其`parseFromString()`方法,传入XML字符串作为参数。例如: ```javascript let parser = new DOMParser(); let xmlString = "<root>...
### DOM、JDOM、DOM4J解析XML实例详解 #### DOM 方式解析 XML 实例解析 ##### 一、DOM 概述与应用实例 DOM(Document Object Model)是一种树状结构的标准,用于表示 XML 文档的数据结构。它将 XML 文档视为节点...
本教程“DOM解析XML应用实例(入门经典案例)”旨在帮助初学者快速掌握DOM解析XML的基本方法和实践技巧。 XML(Extensible Markup Language)是一种标记语言,常用于存储和传输数据,特别是在Web应用程序中。它具有...
1. **DOM解析XML的基本步骤** - **导入库**:首先,在Android项目中,我们需要导入处理XML的Java API,通常是在`build.gradle`文件中添加依赖: ```groovy implementation 'javax.xml.parsers:jaxp-api:1.4.2' `...
很实用的一个dom解析xml实例,很容易上手
以一个实例来说明DOM解析XML文件的方法与过程。
标题“java_dom解析xml xml java”表明了本文档的主题是关于如何使用Java中的DOM技术来解析XML文件。 #### 描述分析 描述中提到这是一个适合新手入门的内容,并给出了一个简单的XML示例。该XML文档包含了一个`...
本文将深入探讨在Android中如何使用DOM方式解析XML。 首先,我们需要理解DOM解析的基本原理。DOM解析器会将整个XML文件加载到内存中,形成一个节点树。这棵树的根节点代表整个XML文档,而其他节点则表示文档中的...
SAX解析XML文件的实例。一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析...当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml文件的实例
在Android项目中,我们需要导入以下库以使用DOM解析XML: ```java import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import org.w3c....
### DOM、JDOM、DOM4J解析XML实例 #### DOM解析XML DOM(Document Object Model)是一种树形结构的数据模型,用于表示XML或HTML文档。它允许程序在内存中加载整个文档,并通过提供的API来访问和修改文档中的任何...
标题中的"DOM_XML.rar"可能是一个包含DOM解析XML相关示例的压缩文件,"DOM_dom xml_dom xml java_dom解析xml_java解析xml"这部分描述了文件的主要内容,即关于DOM(Document Object Model)在XML解析中的应用,特别...
### DOM解析XML实例详解 #### 一、DOM与XML解析概览 DOM(Document Object Model)是一种被广泛采用的标准,用于表示和操作XML文档。它提供了跨平台、跨语言的XML文档表示方式,使得开发人员能够以树状结构的形式...
总结来说,Android中使用DOM解析XML是一种常见且直观的方式,适合处理小规模的数据。结合ButterKnife库,可以方便地将解析结果与UI组件进行绑定,提高代码的可读性和维护性。但请注意,对于大文件,考虑使用SAX或者...
本篇将深入探讨如何使用DOM4(Document Object Model Level 4)解析XML数据,以实现高效的数据处理。 DOM4是W3C发布的DOM标准的最新版本,它提供了更强大的功能和改进,使得开发者可以更方便地处理XML文档。DOM是一...
JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML