Java Dom4J XML 增,更新和查询的用法例子

Java DOM4J 入门指南 通过以上的步骤,我们已经了解了如何使用DOM4J来执行基本的 XML 数据的操作。DOM4J是一个非常强大的工具,支持多种复杂的 XML 处理场景。你可以根据需要添加更多的功能,以满足各种 XML 数据处理的需求。希望这篇俏皮可爱的指南对你有所帮助,如果你还有任何疑问,欢迎随时留言哦!😊注意:上面的代码示例是为了教学目的而编写的,实际使用时请根据你的项目环境进行适当的调整。别忘了检查文件路径的有效性,确保文件系统权限足够,以免遇到运行时错误。此外,记得添加必要的异常处理代码,使你的应用程序更加健壮。 阅读详情
package Dom4JDemo;


import java.util.*;
import java.io.*;


import org.dom4j.*;
import org.dom4j.io.*;


public class DOM4JShow {
private String XMLFileName;
public DOM4JShow(){
XMLFileName=new String("student.xml");
}

public void parse(Element ele){
//处理当前元素包含的所有属性
parseAttribute(ele);
//获取当前元素包含的所有子元素
List el = ele.elements(); 
//遍历每个子元素
for (Object e : el){
Element element = (Element)e;
//如果该元素的内容不是只包含字符串
if (!element.isTextOnly()) {
parse(element);
}
else {
//处理当前元素的全部属性
parseAttribute(element);
//获取当前元素的内容
System.out.println(element.getQName().getName() 
+ "--->" + element.getText());
}
}
}

//定义一个方法处理指定元素的所有属性
public void parseAttribute(Element ele) {
//获取Element元素的所有属性
List attList = ele.attributes();
//遍历Element元素每个属性 
for (Object e : attList) {
Attribute attr = (Attribute)e;
//访问当前元素的每个属性的属性值
System.out.println(ele.getQName().getName() + "元素的"
+ attr.getQName().getName() + "属性值为:" 
+ attr.getValue());
}
}

public void DOM4JUpdateFileShow(){
  System.out.println("DOM4JUpdateFileShow() enter"); 
  
  //使用SAXReader来解析XML文档
SAXReader  reader = new SAXReader();
//忽略元素的开始标签、结束标签之间的空白
reader.setStripWhitespaceText(true);
//将元素之间相邻的文本内容合并处理
reader.setMergeAdjacentText(true);
Document doc;
try {
doc = reader.read(new File("mybook.xml"));
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return;
}


Element root = doc.getRootElement();

   //append one element into DOM4J tree to become the last element
Element pcBook = root.addElement("computerbook");
pcBook.addAttribute("isbn" , Math.round((Math.random() * 1000)) + ""); 
Element name = pcBook.addElement("name");
name.setText("XML Introduction");
Element price = pcBook.addElement("price");
price.setText(58.00 + "");

//insert another element from beginning (1st node)
List nodelist = root.content();
pcBook = DocumentHelper.createElement("computerbook"); 
pcBook.addAttribute("isbn" , Math.round((Math.random() * 1000)) + ""); 
name = pcBook.addElement("name");
name.setText("Python Introduction");
price = pcBook.addElement("price");
price.setText(28.00 + "");
 
//insert another element from beginning (1st node)
nodelist.add(0, pcBook);
 
//remove one computerbook element whose isbn=44, including its child node.
// 用xpath查找对象
List list = doc.selectNodes("/BookList/computerbook"); 
for(Element bookElement : (List<Element>) list){
if (bookElement.attribute("isbn").getValue().equals("44")) {
bookElement.getParent().remove(bookElement);
break;
  }
}
 
//定义一个输出格式对象 for GBK if there are Chinese Text
OutputFormat format = new OutputFormat("", true, "GBK"); 
FileWriter fw;
try {
fw = new FileWriter("mybook.xml");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return;
}

XMLWriter writer = new XMLWriter(fw , format); 
try {
//save changes into XML file
writer.write(doc);  
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
  System.out.println("DOM4JUpdateFileShow() exit"); 
  return;

}

public void DOM4JCreateFileShow(){
   System.out.println("DOM4JCreateFileShow() enter"); 
DocumentFactory factory = new DocumentFactory();
Document doc = factory.createDocument();

//向doc中添加根节点元素
Element root = doc.addElement("BookList");
//add 4 elements
for (int i = 0; i < 4 ; i++ )
{

Element pcBook = root.addElement("computerbook");
//add one attribute isbn to computerbook
pcBook.addAttribute("isbn" , (i+1)*11 + ""); 
//add child element name
Element name = pcBook.addElement("name");
name.setText("bookname" + i);
//add child element price
Element price = pcBook.addElement("price");
price.setText((i+1) * 10.0 + "");
}
//定义一个输出格式对象
OutputFormat format = new OutputFormat("", true, "GBK"); 
FileWriter fw;
try {
fw = new FileWriter("mybook.xml");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
return;
}

XMLWriter writer = new XMLWriter(fw , format);
try {
writer.write(doc);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}  
try {
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
  System.out.println("DOM4JCreateFileShow() exit"); 
  return;
}


public void DOM4JReaderShow(){
 System.out.println("DOM4JReaderShow() enter"); 
 SAXReader reader = new SAXReader();
 Document doc;
 Element root;
 try {
doc = reader.read(new File(XMLFileName));
root = doc.getRootElement();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return;
    }
  parse(root);
  System.out.println("DOM4JReaderShow() exit"); 
  return;
}

public static void main(String[] args) {
DOM4JShow minstance = new DOM4JShow();
minstance.DOM4JReaderShow();
minstance.DOM4JCreateFileShow();
minstance.DOM4JUpdateFileShow();
}
}
精通DOM4J:Java XML处理库实践指南 XML(Extensible Markup Language)作为互联网上数据交换的标准格式,被广泛应用于数据存储、数据传输和数据配置等多个领域。Java作为强大的后端开发语言,提供了多种库来处理XML文件,如JAXP、JDOM和DOM4J等。在这些库中,DOM4J凭借其功能强大、性能高效和使用便捷等特点脱颖而出,成为了Java开发者在处理XML文档时的首选。XML Schema是一种用于定义XML文档结构、内容和数据类型的语言。 阅读详情

相关推荐

Java XML处理进阶:dom4j与jaxen实战解析包

XML是一种简单的数据存储格式,它提供了一种结构化数据的描述方法。与HTML不同,XML不用于显示数据,而是用来描述数据。它允许开发者创建自己的标签,从而满足特定应用领域的需要。XML文档通常由XML声明、文档类型声明(DTD)、处理指令、注释以及元素组成。XML的自描述性使得它非常适合于应用程序之间的数据交换。文档对象模型(DOM)是一种跨平台的、语言无关的接口,用于解析XML和HTML文档。它通过将文档表示为节点树(Node Tree),允许程序和脚本动态地访问和更新文档内容、结构和样式。

weixin_34456923的博客 894

java解析xml技术(二)

在上一篇java解析xml技术(一)中,我已经讲完jdk中自带解析xml的两种方式dom和sax,现在我继续讲一讲另一个java平台下的xml解析工具dom4j。 dom4j就是dom for java的缩写,它完全支持dom、sax、jaxp机制。它处理xml的方式如下:List itemList=list.elements(); for(int i=0;i<itemList.size();i

xanxus46的专栏 4692

dom4j XML解析工具包与示例

在信息技术飞速发展的今天,Java开发者在处理XML文档时经常需要面对复杂的数据结构和大量的数据处理需求。DOM4J应运而生,以其高性能和易用性在众多XML处理库中脱颖而出。本章节将引领您初步了解DOM4J库,并介绍其在实际应用中的基础。DOM4J库是一个功能强大的开源Java库,用于处理XML文档,它能够创建、查询和修改XML文件。其名称"DOM4J"的含义为“Document Object Model for Java”,突显了它作为文档对象模型的实现。

weixin_42593549的博客 683

Element类提供的方法访问一个XML元素中含有的信息

可以通过Element类提供的方法访问一个XML元素中含有的信息: Method Comment getQName() 元素的QName对象 getNam

HouYing 2329

深入解析dom4j与jaxen XML处理库

XML(Extensible Markup Language)可扩展标记语言是一种用于存储和传输数据的标记语言,它通过自定义标签来描述信息,提供了一种结构化的方式来表现信息内容。在Java领域,XML被广泛用于配置文件、数据交换和文档存储中,是各种Java XML API处理的基础。dom4j是一个易用、开源的Java XML API,它支持XML、XPath和XSLT。它与JDOM类似,但提供了更大的灵活性和更丰富的API。

weixin_42513870的博客 1183

dom4j-1.6.1全功能Java库:XML文档处理

DOM4J是一个功能强大的开源Java XML API,它提供了简单易用的API以及对XPath和XSLT的支持。作为Java开发者处理XML文档的首选库之一,它能够用于读取、解析、修改和写入XML文档。不同的XML解析技术有着不同的适用场景,选择合适的解析器需要根据项目的需求和环境来决定。DOM提供了一种直观的方式来处理XML文档,适合于需要随机访问文档内容的场景,但消耗的内存较多。SAX提供了一种快速解析大型文件的方式,但编程复杂且只能进行顺序访问。

weixin_31641077的博客 704

java update()方法代码_Java更新XML的四种常用方法简介

设置输出时所采用的编码方式,比如"GB2312"、"UTF-8"等等,如果将其设置为"GB2312",可以解决所谓的"汉字问题"。public static final java.lang.String OMIT_XML_DECLARATION设置输出到XML文档中时是否忽略XML声明,亦即类似于:这样的代码。它可选的值有"yes"、"no"。public static final java.la...

weixin_32429413的博客 1923

Java更新XML的四种常用方法简介

Java更新XML的四种常用方法简介

Java 使用dom4j进行XML解析

1、XML解析(dom4j) 1.1 读取XML文档 // 从文件读取XML,输入文件名,返回XML文档 public Document read(String fileName) throws MalformedURLException, DocumentException { SAXReader reader = new SAXReader(); Document document = reader.read(new File(fileName)); return document;

zhangwenchao0814的博客 921

YOLOV8主干改进方法:C2f-Dual——DualConv轻量化双卷积设计(附改进代码)

DualConv是一种创新的卷积网络结构,旨在构建轻量级的深度神经网络。它通过结合3×3和1×1的卷积核处理相同的输入特征映射通道,优化了信息处理和特征提取。DualConv利用组卷积技术高效排列卷积滤波器,大大降低了计算成本和参数数量。

m0_74890428的博客 4701

[Arcgis插件分享]--在线地图、地图配色

插件介绍:MapOnline在线地图插件是一套由北京茗禾科技有限公司研发的基于ArcGIS的插件工具,用户通过注册“数据禾”网站,即可使用MapOnline实现各种在线地图资源的集成加载,以及网站共享资源的免费下载。包括:谷歌地图、谷歌地球(无偏)、高德地图、天地图(无偏)、搜搜地图、必应地图(无偏)、OSM地图(无偏)、Esri影像(无偏),以及自定义切片的加载。⑤在Arcmap操作窗口上方的菜单栏右键,调用「MapOnlinev1.2.4」②双击安装文件夹内的「MapOnline.esriAddIn」

weixin_59101151的博客 5767

java解析xml字符串

package com; import java.io.StringReader; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Test1 { public static void main(Stri.

如风 5078

deepfacelab下载安装及训练(小白篇),以及导出SAEHD为dfm文件,解决broken pipe问题

其中如果用的是RTX30系列显卡的话,需要把WIN10升级到20H4或更新版本,然后打开硬件加速,不然会出现训练时一直卡在第一个迭代不动了,我的服务器版本为22H2,符合。支持WIN10,win11,WIN7,LINUX,不支持mac(因为mac不支持NVIDIA显卡)

caoyongsheng的博客 3903

Java操作XML文档(创建、查询、新增、修改、删除)

1、XML简介 XML是 eXtensible Markup Language(可扩展标记语言)的缩写,是 SGML(标准通用化标记语言)的一个子集,用于提供数据描述格式,适用于不同应用程序间的数据交换,而且这种交换不以预先定义的一组数据结构为前提,增强了可扩展性。 1.2 XML文档结构 XML是一套定义语义标记的规则,同时也是用来定义其他标识语言的元标识语言。下面是一个简单的XML文档的...

pan_junbiao的博客 5378

麒麟OS(Kylin OS)操作系统minikube+docker安装使用及遇到的问题

一 ,安装minikube及操作工具kubectl 1,安装kubectl 使用以下命令下载最新版本: curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" 要下载指定版本(例如v1.22.0版本) ,请键入: curl -LO https://dl.k8s.io/release/v1.22.0/bin/linux/amd..

qq_23396017的博客 2643

招标信息爬取工具

一个能帮你节省大量时间的实用小工具,我自己用了挺久,分享出来给有需要的朋友

qq_56877290的博客 837

XML解析之DOM4J的增删改查

DOM4J介绍 DOM4J是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点。 其优点: DOM4J使Java开发的灵活性和XML解析代码易于维护。它是轻量级的,快速的API。 使用Dom4j开发,需下载dom4j相应的jar文件。官网DOM4J的jar文件下载地址 笔者也在这里提...

Tate的博客 595

【Ranger】mac下Apache Ranger编译安装

a、编译过程中出现测试用例不通过和文件认证错误错误:带上参数-DskipTests=true -Drat.skip=true 重新编译;b、若编译过程中出现缺少jar包的情况,可能下载不了,需要手动自动添加;c、编译所需的其他工具如maven等安装配置略。采用这个会报错,因此我才用了下面一个命令。初始化设置Ranger Admin:执行。然后进入target目录。

九师兄 2106

【dom4j】java解析XML

这篇文章将使用dom4j对xml文件进行增删改查操作

秃头披风侠的博客 1038

SAP_SD模块销售开票计划预收款系统配置及前台操作说明

在 SAP SD 中,开票计划(Billing Plan)是一种允许根据时间节点或里程碑对销售订单进行分期开票的功能。其中最常见的一种应用就是预收款(Down Payment Billing),即在销售订单中直接定义某个百分比或金额作为预收款,系统在开票时自动生成预收账单。大额合同或长期项目型销售(先收 20%,交货前收 30%,交货后收 50%)。分期付款模式(分阶段收款)。必须预收款才能安排生产或交货的业务。后台路径:SPRO—销售与分享—销售—销售凭证—销售凭证项目—定义项目类别。

我小时候很黑的博客 1409

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

DOM4J的用法

package Sav; import java.io.File; import java.io.FileOutputStream; import java.io.UnsupportedEncodingException; import java.util.List; import org.dom4j.Document; import org.dom4j.Element; import org.d...

Javastudenthhhk的博客 546

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

dom4j: 灵活的Java XML处理框架指南

dom4j 是一个开源的Java框架,专门用于高效地处理XML数据。它整合了XPath查询引擎,并完全兼容DOM、SAX、JAXP标准,同时充分利用Java平台的特性,如Java 2 Collections。dom4j的设计简洁灵活,支持创建、查询、修改XML文档,且在版本更新中持续增强安全性与易用性。最新版本为2.1.4(发布于2023年1月),提供了更安全的默认设置,例如禁用了SAX解析器中的...

gitblog_00596的博客 688

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Dom4J对XML文件增删改查(JAVA)--以及常见方法

XML XML语言本身是一种数据以及数据说明的文本格式规范 因为数据传输的方式千奇百怪,为了数据之间传达的方便与统一,XML提供了一套数据存储、交换、表达的标准,被用来结构化、存储以及传输信息。 Dom4J Dom4J是XML文件的API,可以在JAVA平台上对XML文件进行读写。 XML格式 第一行必加,显示版本号和编码格式。 PS:类似与HTML的格式有首位标签的模式。首标签内可以拥有属性,标...

qq_35050438的博客 1532

java利用dom4j解析XML文件

public class XML_dom4j { static String path = "123.xml"; public static void main(String[] args) throws Exception { XML_dom4j x = new XML_dom4j(); x.loadDocument(); // x.add(); // x.update();

qq_34012703的博客 275

java dom4j 修改xml文件_dom4j 修改 xml文件的值

⊙﹏⊙b汗。。。。这个重写完以后,你要将写完后的值重新写到你的文件里面去的!那块我没给你写。。。。。。。。先==啊,一会给你写!~代码中:XMLWriter output = new XMLWriter(new FileWriter(new File("c:/catalog-modified.xml"))); //file换成你自己的xml文件import java.io.File;import ...

weixin_36282234的博客 416
上一篇: Java XML分析技术: StAX, SAX, DOM, DOM4j, JDOM
下一篇: 使用Dom4j时遇到的两个问题
大树叶
博客等级 码龄12年 1171粉丝 664原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值