Java解析XML的方式有哪些
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,这篇文章将为大家详细讲解有关Java解析XML的方式有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。xml文件
千家信息网最后更新 2025年11月14日Java解析XML的方式有哪些
这篇文章将为大家详细讲解有关Java解析XML的方式有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

xml文件
cxx1 Bob1 stars1 85 cxx2 Bob2 stars2 85 cxx3 Bob3 stars3 85
1.DOM方式
package com.cxx.xml;import org.w3c.dom.*;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;/** * @Author: cxx * Dom操作xml * @Date: 2018/5/29 20:19 */public class DomDemo { //用Element方式 public static void element(NodeList list){ for (int i = 0; i 结果截图

2.SAX方式
package com.cxx.xml;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;/** * @Author: cxx * SAX解析DOM * 一行一行 Handler * startElement * endElement * @Date: 2018/5/29 20:03 */public class SaxDemo { public static void main(String[] args) throws Exception { //1.或去SAXParserFactory实例 SAXParserFactory factory = SAXParserFactory.newInstance(); //2.获取SAXparser实例 SAXParser saxParser = factory.newSAXParser(); //创建Handel对象 SAXDemoHandel handel = new SAXDemoHandel(); saxParser.parse("src/main/resources/demo.xml",handel); }}class SAXDemoHandel extends DefaultHandler { //遍历xml文件开始标签 @Override public void startDocument() throws SAXException { super.startDocument(); System.out.println("sax解析开始"); } //遍历xml文件结束标签 @Override public void endDocument() throws SAXException { super.endDocument(); System.out.println("sax解析结束"); } @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { super.startElement(uri, localName, qName, attributes); if (qName.equals("student")){ System.out.println("============开始遍历student============="); //System.out.println(attributes.getValue("rollno")); } else if (!qName.equals("student")&&!qName.equals("class")){ System.out.print("节点名称:"+qName+"----"); } } @Override public void endElement(String uri, String localName, String qName) throws SAXException { super.endElement(uri, localName, qName); if (qName.equals("student")){ System.out.println(qName+"遍历结束"); System.out.println("============结束遍历student============="); } } @Override public void characters(char[] ch, int start, int length) throws SAXException { super.characters(ch, start, length); String value = new String(ch,start,length).trim(); if (!value.equals("")) { System.out.println(value); } }}结果截图
3.JDOM方式
org.jdom jdom 1.1.3
package com.cxx.xml;import org.jdom.Attribute;import org.jdom.Document;import org.jdom.Element;import org.jdom.input.SAXBuilder;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.InputStream;import java.util.List;/** * @Author: cxx * JDom解析xml * 快速开发XML应用程序。 * 是一个开源项目 * JDOM主要用来弥补DOM和SAX在实际应用当中的不足。 * @Date: 2018/5/30 11:44 */public class JDomDemo { public static void main(String[] args) throws Exception { //1.创建SAXBuilder对象 SAXBuilder saxBuilder = new SAXBuilder(); //2.创建输入流 InputStream is = new FileInputStream(new File("src/main/resources/demo.xml")); //3.将输入流加载到build中 Document document = saxBuilder.build(is); //4.获取根节点 Element rootElement = document.getRootElement(); //5.获取子节点 List children = rootElement.getChildren(); for (Element child : children) { System.out.println("通过rollno获取属性值:"+child.getAttribute("rollno")); List attributes = child.getAttributes(); //打印属性 for (Attribute attr : attributes) { System.out.println(attr.getName()+":"+attr.getValue()); } List childrenList = child.getChildren(); System.out.println("======获取子节点-start======"); for (Element o : childrenList) { System.out.println("节点名:"+o.getName()+"---"+"节点值:"+o.getValue()); } System.out.println("======获取子节点-end======"); } }} 结果截图
4.DOM4J方式
dom4j dom4j 1.6.1
package com.cxx.xml;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;import java.io.File;import java.util.Iterator;import java.util.List;/** * @Author: cxx * Dom4j解析xml * @Date: 2018/5/30 12:21 */public class Dom4JDemo { public static void main(String[] args) throws Exception { //1.创建Reader对象 SAXReader reader = new SAXReader(); //2.加载xml Document document = reader.read(new File("src/main/resources/demo.xml")); //3.获取根节点 Element rootElement = document.getRootElement(); Iterator iterator = rootElement.elementIterator(); while (iterator.hasNext()){ Element stu = (Element) iterator.next(); List attributes = stu.attributes(); System.out.println("======获取属性值======"); for (Attribute attribute : attributes) { System.out.println(attribute.getValue()); } System.out.println("======遍历子节点======"); Iterator iterator1 = stu.elementIterator(); while (iterator1.hasNext()){ Element stuChild = (Element) iterator1.next(); System.out.println("节点名:"+stuChild.getName()+"---节点值:"+stuChild.getStringValue()); } } }} 总结
关于"Java解析XML的方式有哪些"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
节点
方式
对象
属性
截图
文件
篇文章
结果
一行
实例
更多
标签
j++
应用
输入
不错
实用
内容
名称
实际
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
泰安高校党建软件开发
计算机网络技术答案李晓峰
网络服务器的功能概述
列举常见的软件开发工具
软件开发工作室能挣多少钱
软件开发上海工资待遇
公安部网络安全监控
山西惠普服务器维修调试哪家便宜
电脑有地址连不上服务器
河南租服务器多少钱
嘉祥软件开发自学网哪家好
软件开发网站大全
网络安全员和黑客谁厉害
服务器迁移到虚拟机
网络安全知多少手抄报二年级
关系型数据库端口号
广东服务器续保维修
奉贤区智能网络技术采购信息
201610计算机网络安全
修改数据库使用sql语句6
网络技术最早出现在
2016版数据库表怎么建立索引
武汉金稅盘安全服务器地质
杭州皮萌网络技术官网
网络安全信息安全论坛
抓取足球经理数据库
运城网络技术操作
h1z1生存服务器
数据库提示ora
数据库的a.