1. 元素和节点
<?xml version="1.0" encoding="UTF-8"?>
<student>
<name id="001">张三</name>
<sex>男</sex>
<age>20</age>
</student>
元素一定是节点,但是节点不一定是元素。<name id="001">张三</name>
元素节点:name
属性节点:id="001"
文本节点:张三
2. DOM方式解析XML原理
基于DOM(Document Object Model,文档对象模型)解析方式,是把整个XML文档加载到内存,转化成DOM树,因此应用程序可以随机的访问DOM树的任何数据;
优点:灵活性强,速度快;
缺点:消耗资源比较多;
2.1 单节点
<?xml version="1.0" encoding="UTF-8"?>
<student>
<name id="001">张三</name>
<sex>男</sex>
<age>20</age>
</student>
package com.andrew.xml;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class DOM01 {
public static void main(String[] args) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse("src/student.xml");
NodeList nodeList = document.getElementsByTagName("student");
Element element = (Element) nodeList.item(0);
System.out.println("姓名:" + element.getElementsByTagName("name").item(0).getFirstChild().getNodeValue());
System.out.println("性别:" + element.getElementsByTagName("sex").item(0).getFirstChild().getNodeValue());
System.out.println("年龄:" + element.getElementsByTagName("age").item(0).getFirstChild().getNodeValue());
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行结果:
姓名:张三
性别:男
年龄:20
2.2 多节点
<?xml version="1.0" encoding="UTF-8"?>
<students>
<student>
<name id="001" xx="哈哈">张三</name>
<sex>男</sex>
<age>20</age>
</student>
<student>
<name id="002">李四</name>
<sex>女</sex>
<age>21</age>
</student>
</students>
package com.andrew.xml;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class DOM02 {
public static void printNodeAttr(Node node) {
NamedNodeMap namedNodeMap = node.getAttributes();
for (int i = 0; i < namedNodeMap.getLength(); i++) {
Node attrNode = namedNodeMap.item(i);
System.out.println(attrNode.getNodeName() + ":" + attrNode.getFirstChild().getNodeValue());
}
}
public static void main(String[] args) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse("src/students.xml");
NodeList nodeList = document.getElementsByTagName("students");
Element element = (Element) nodeList.item(0);
NodeList studentsNodeList = element.getElementsByTagName("student");
for (int i = 0; i < studentsNodeList.getLength(); i++) {
Element e = (Element) studentsNodeList.item(i);
System.out.println("姓名:" + e.getElementsByTagName("name").item(0).getFirstChild().getNodeValue());
printNodeAttr(e.getElementsByTagName("name").item(0));
System.out.println("性别:" + e.getElementsByTagName("sex").item(0).getFirstChild().getNodeValue());
System.out.println("年龄:" + e.getElementsByTagName("age").item(0).getFirstChild().getNodeValue());
System.out.println("================");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行结果:
姓名:张三
id:001
xx:哈哈
性别:男
年龄:20
================
姓名:李四
id:002
性别:女
年龄:21
================
分享到:
相关推荐
XML文件DOM方式解析 DOM解析方式:Document Object Model,文档对象模型。该方式将XML文档在内存中解析成一个树状结构。并通过不同类来表示元素、属性以及注释文本值等内容
java学习笔记——使用DOM解析XML和使用SAX解析XML
使用 dom4j 解析 XML dom4j 解析 XML dom4j解析xml
使用dom4j解析XML使用dom4j解析XML使用dom4j解析XML使用dom4j解析XML使用dom4j解析XML使用dom4j解析XML使用dom4j解析XML使用dom4j解析XML使用dom4j解析XML使用dom4j解析XML使用dom4j解析XML
xml解析 dom方式 例子和讲解 java代码 内涵jar 自己引用配置
DOM解析XML 创建XML
Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc
Android使用Dom方式解析XML,虽然xml文件太大时不建议用dom方式解析,但是如果文件比较小,也不失为一种选择。项目中xml放在assets文件夹下,view绑定使用butterknife
该Demo是通过Dom方式来解析xml,运行环境为androidStudio。
xml解析,dom4j解析,xml循环节点处理,java代码 jar包执行20190331.rar
使用Android自带的工具,解析xml文件内容,并显示在程序界面上
android dom方式解析xml 完整的工程,直接可运行
使用dom解析XML,演示了如何使用DOM的五个基本对象来解析xml。
XML的DOM解析方式 解析环球新闻的rss格式新闻
DOM解析XML文件例子DOM解析XML文件例子DOM解析XML文件例子
在Java平台中如何来使用DOM解析xml文件,
使用dom解析某个固定XML,使用dom解析某个固定XML
使用DOM4J的解析方式解析XML文件.
asp使用xmldom对象解析xml文件示例。