JDOM XML Parser

2024-03-19 12:38
文章标签 xml parser jdom

本文主要是介绍JDOM XML Parser,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  JDOM provides a way to represent that document for easy and efficient reading, manipulation, and writing. It’s an alternative(替代) to DOM and SAX.

JDOM官网: http://jdom.org/
GitHub: https://github.com/hunterhacker/jdom/

JDOM是第三方jar:

Gradle:

compile group: 'org.jdom', name: 'jdom2', version: '2.0.6'

Maven:

<dependency><groupId>org.jdom</groupId><artifactId>jdom2</artifactId><version>2.0.6</version>
</dependency>
1.0 How to read XML file in Java – (JDOM Parser)
<?xml version="1.0"?>
<company><staff><firstname>yong</firstname><lastname>mook kim</lastname><nickname>mkyong</nickname><salary>100000</salary></staff><staff><firstname>low</firstname><lastname>yin fong</lastname><nickname>fong fong</nickname><salary>200000</salary></staff>
</company>
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;public class ReadXMLFile {public static void main(String[] args) {SAXBuilder builder = new SAXBuilder();File xmlFile = new File("c:\\file.xml");try {Document document = (Document) builder.build(xmlFile);Element rootNode = document.getRootElement();List list = rootNode.getChildren("staff");for (int i = 0; i < list.size(); i++) {Element node = (Element) list.get(i);System.out.println("First Name : " + node.getChildText("firstname"));System.out.println("Last Name : " + node.getChildText("lastname"));System.out.println("Nick Name : " + node.getChildText("nickname"));System.out.println("Salary : " + node.getChildText("salary"));}} catch (IOException io) {System.out.println(io.getMessage());} catch (JDOMException jdomex) {System.out.println(jdomex.getMessage());}}
}

Output

First Name : yong
Last Name : mook kim
Nick Name : mkyong
Salary : 100000
First Name : low
Last Name : yin fong
Nick Name : fong fong
Salary : 200000
2.0 How to modify XML file in Java – (JDOM Parser)

File : file.xml – Original XML file.

<?xml version="1.0" encoding="UTF-8"?>
<company><staff id="1"><firstname>yong</firstname><lastname>mook kim</lastname><nickname>mkyong</nickname><salary>5000</salary></staff>
</company>

File : file.xml – Newly modified XML file.

<?xml version="1.0" encoding="UTF-8"?>
<company><staff id="2"><lastname>mook kim</lastname><nickname>mkyong</nickname><salary>7000</salary><age>28</age></staff>
</company>
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;public class ModifyXMLFile {public static void main(String[] args) {try {SAXBuilder builder = new SAXBuilder();File xmlFile = new File("c:\\file.xml");Document doc = (Document) builder.build(xmlFile);Element rootNode = doc.getRootElement();// update staff id attributeElement staff = rootNode.getChild("staff");staff.getAttribute("id").setValue("2");// add new age elementElement age = new Element("age").setText("28");staff.addContent(age);// update salary valuestaff.getChild("salary").setText("7000");// remove firstname elementstaff.removeChild("firstname");XMLOutputter xmlOutput = new XMLOutputter();// display nice nicexmlOutput.setFormat(Format.getPrettyFormat());xmlOutput.output(doc, new FileWriter("c:\\file.xml"));// xmlOutput.output(doc, System.out);System.out.println("File updated!");} catch (IOException io) {io.printStackTrace();} catch (JDOMException e) {e.printStackTrace();}}
}
3.0 How to create XML file in Java – (JDOM Parser)
import java.io.FileWriter;
import java.io.IOException;
import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;public class WriteXMLFile {public static void main(String[] args) {try {Element company = new Element("company");Document doc = new Document(company);doc.setRootElement(company);Element staff = new Element("staff");staff.setAttribute(new Attribute("id", "1"));staff.addContent(new Element("firstname").setText("yong"));staff.addContent(new Element("lastname").setText("mook kim"));staff.addContent(new Element("nickname").setText("mkyong"));staff.addContent(new Element("salary").setText("199999"));doc.getRootElement().addContent(staff);Element staff2 = new Element("staff");staff2.setAttribute(new Attribute("id", "2"));staff2.addContent(new Element("firstname").setText("low"));staff2.addContent(new Element("lastname").setText("yin fong"));staff2.addContent(new Element("nickname").setText("fong fong"));staff2.addContent(new Element("salary").setText("188888"));doc.getRootElement().addContent(staff2);// new XMLOutputter().output(doc, System.out);XMLOutputter xmlOutput = new XMLOutputter();// display nice nicexmlOutput.setFormat(Format.getPrettyFormat());xmlOutput.output(doc, new FileWriter("c:\\file.xml"));System.out.println("File Saved!");} catch (IOException io) {System.out.println(io.getMessage());}}
}````Result:<div class="se-preview-section-delimiter"></div>```xml
<?xml version="1.0" encoding="UTF-8"?>
<company><staff id="1"><firstname>yong</firstname><lastname>mook kim</lastname><nickname>mkyong</nickname><salary>199999</salary></staff><staff id="2"><firstname>low</firstname><lastname>yin fong</lastname><nickname>fong fong</nickname><salary>188888</salary></staff>
</company>

  
JDOM学习相关文档
http://www.studytrails.com/java/xml/jdom2/java-xml-jdom2-introduction/
https://www.journaldev.com/1206/jdom-parser-read-xml-file-object-java

这篇关于JDOM XML Parser的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/826019

相关文章

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

mybatis的mapper对应的xml写法及配置详解

《mybatis的mapper对应的xml写法及配置详解》这篇文章给大家介绍mybatis的mapper对应的xml写法及配置详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录前置mapper 对应 XML 基础配置mapper 对应 xml 复杂配置Mapper 中的相

java中XML的使用全过程

《java中XML的使用全过程》:本文主要介绍java中XML的使用全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录什么是XML特点XML作用XML的编写语法基本语法特殊字符编写约束XML的书写格式DTD文档schema文档解析XML的方法​​DOM解析XM

浅析如何使用xstream实现javaBean与xml互转

《浅析如何使用xstream实现javaBean与xml互转》XStream是一个用于将Java对象与XML之间进行转换的库,它非常简单易用,下面将详细介绍如何使用XStream实现JavaBean与... 目录1. 引入依赖2. 定义 JavaBean3. JavaBean 转 XML4. XML 转 J

Python利用ElementTree实现快速解析XML文件

《Python利用ElementTree实现快速解析XML文件》ElementTree是Python标准库的一部分,而且是Python标准库中用于解析和操作XML数据的模块,下面小编就来和大家详细讲讲... 目录一、XML文件解析到底有多重要二、ElementTree快速入门1. 加载XML的两种方式2.

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

SpringBoot中配置文件pom.xml的使用详解

《SpringBoot中配置文件pom.xml的使用详解》SpringBoot的pom.xml文件是Maven项目的核心配置文件,用于定义项目的依赖、插件、构建配置等信息,下面小编就来和大家详细介绍一... 目录1. 基本结构2. 关键部分详解2.1 <modelVersion>2.2 项目坐标2.3 <p