JAVA中使用Dom解析XML
在G盘下新建XML文档:person.xml,XML代码:
<?xml version="1.0" encoding="utf-8"?> <students>
<student id="1">
<name>a</name>
<sex>男</sex>
<age>18</age>
</student>
<student id="2">
<name>b</name>
<sex>女</sex>
<age>16</age>
</student>
</students>
定义XML解析器的接口
package jichu;
public interface XmlParser {
    public void parseXml(String fileName);
}
XML解析器的实现
package jichu; import java.io.FileNotFoundException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException; public class DomXmlParser implements XmlParser { public void parseXml(String fileName) {
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(fileName);
Element root = document.getDocumentElement();
NodeList nodeList = root.getChildNodes();
if (root != null) {
for (int i = 0; i < nodeList.getLength(); i++) {
Node child = nodeList.item(i);
if (child.getNodeType() == Node.ELEMENT_NODE) {
System.out.print("属性:");
System.out.println(child.getAttributes().getNamedItem(
"id"));
}
for (Node node = child.getFirstChild(); node != null; node = node
.getNextSibling()) {
if (node.getNodeType() == Node.ELEMENT_NODE) {
System.out.print("子节点:");
System.out.println(node.getNodeName() + ":"
+ node.getTextContent());
}
}
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
测试:
package jichu;
public class MainClass {
    public static void main(String[] args) {
        XmlParser d = new DomXmlParser();
        d.parseXml("G:\\person.xml");
    }
}
打印:
属性:id="1"
子节点:name:a
子节点:sex:男
子节点:age:18
属性:id="2"
子节点:name:b
子节点:sex:女
子节点:age:16
JAVA中使用Dom解析XML的更多相关文章
- JAVA中使用DOM解析XML文件
		
XML是一种方便快捷高效的数据保存传输的格式,在JSON广泛使用之前,XML是服务器和客户端之间数据传输的主要方式.因此,需要使用各种方式,解析服务器传送过来的信息,以供使用者查看. JAVA作为一种 ...
 - 转:在java中使用dom4j解析xml
		
JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...
 - java中采用dom4j解析xml文件
		
一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...
 - java中多种方式解析xml
		
第一种:DOM.DOM的全称是Document Object Model,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正 ...
 - java中利用dom4j解析XML文件
		
官网下载Dom4j地址:https://dom4j.github.io/ 注意:使用Dom4j开发,需下载dom4j相应的jar文件 题目:后台利用dom4j解析student.xml文件,并返回Li ...
 - Qt中使用DOM解析XML文件或者字符串二(实例)
		
介绍 在Qt中提供了QtXml模块实现了对XML数据的处理,我们在Qt帮助中输入关键字QtXml Module,可以看到该模块的类表.在这里我们可以看到所有相关的类,它们主要是服务于两种操作XML文档 ...
 - 在java中使用dom4j解析xml
		
创建xml文档并输出到文件 import java.io.File; import java.io.FileOutputStream; import org.dom4j.Document; impor ...
 - Java中实现SAX解析xml文件到MySQL数据库
		
大致步骤: 1.Java bean 2.DBHelper.java 3.重写DefaultHandler中的方法:MyHander.java 4.循环写数据库:SAXParserDemo.java ① ...
 - Qt中使用DOM解析XML文件或者字符串(实例)
		
因为需要读取配置文件,我的配置文件采用xml:因此编写了使用qt读取xml文件内容的代码,xml文件如下: <?xml version="1.0" encoding=&quo ...
 
随机推荐
- Java大厂笔试&&面试集合大全目录
			
面试技巧 掌握面试技巧,提升自身软实力! HR面试都会问什么问题?(上) HR面试都会问什么问题?(下) 作为一技术人员,面试前都需要做哪些准备? 面试题 Java各个阶段面试题,帮你提升自我,拿到高 ...
 - 宁夏网络赛-F-Moving On
			
https://www.cnblogs.com/31415926535x/p/11440395.html 一道简单的Floyd题,,但是是动态加点求多次有限制的最短路,,感觉这个思想很好,,当然可以直 ...
 - kubernetes 实践五:Service详解
			
Service 是 k8s 的核心概念,通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并且将请求负载分发到后端的各个容器应用上. Service 的定义 Servic ...
 - LeetCode977.Squares of a Sorted Array
			
题目 977. Squares of a Sorted Array Given an array of integers A sorted in non-decreasing order, retur ...
 - js指定日期时间加一天 ,判断指定时间是否为周末
			
function dateAdd(startDate) { startDate = new Date(startDate); startDate = +startDate + ***; startDa ...
 - [C#] 匿名方法的方便和安全
			
static void Main(string[] args) { int count = 5; //不安全写法 Task.Run(() => { Thread.Sleep(1000); Con ...
 - bat计算指定文件MD5并输出txt
			
@echo off set Name1=*.ADS set Name2=GM_RSSPI* set Name3=equipment* set Name4=protocols* REM 设置输出文件名 ...
 - JML规格编程系列——OO Unit3分析和总结
			
本文是BUAA OO课程Unit3在课程讲授.三次作业完成.自测和互测时发现的问题,以及倾听别人的思路分享所引起个人的一些思考的总结性博客.主要包含JML相关梳理.SMT Solver验证.JML单元 ...
 - 北航OO课程完结总结
			
什么是OO? 面向对象,是一种编程的思想方法,但是在这门课程中,我们实际学习到的是将理论运用到具体实践上,将自己的想法付诸实践,不断去探索和优化的这一体验. 后两次作业架构总结 本单元两次作业,我们面 ...
 - zubax_gnss简介
			
参考:https://docs.zubax.com/zubax_gnss 目录结构 bootloader:主要功能是升级application.加载application和初始化application ...