【XML笔记】XML文档解析

四.XML文档的解析

dom4j组件另一个比较重要的功能就是解析XML文档,通过该组件可以很方便地解析XML文档

1.构建XML文档对象

在获取XML文档对象时,首先要创建SAXReader对象(SAXReader 类属于 org.dom4j.io),然后调用该对象的read()方法获取对应XML文档对象。
public Documentread(File file) throws DocumentException

file:指定要解析的XML文件

String fileURL = request.getRealPath("/xml/p.xml");
SAXReader reader = new SAXReader(); //实例化SAXReader对象
Document doc = reader.read(new File(fileURL));//获取XML文件对应的XML文档对象


2.获取根节点

a.element()方法

element()方法用于获取指定名称的第一个节点(通常用于获取根节点中节点名唯一的一个子节点)
public Elementelement(String name)
name:指定要获取的节点的名。
返回值:Element对象。

b.elements()方法

elements()方法用于获取指定名称的全部节点(通常用于获取根节点中多个并列的具有相同名称的子节点)
public Listelements(String name)
name:用于指定要获取的节点名
返回值:List 集合

3.修改节点

在修改XML文档的节点前,首先需要查询到该节点,在 dom4j组件中,查询节点可以应用 Element 对象的(从org.dom4j.Node接口继承)两个方法来实现
a.selectSingleNode()方法
public NodeselectSingleNode(String xpathExpression)
xpathExpression:XPath 表达式。
    • XPath表达式使用反斜杠“\”隔开节点树的父子节点,从而构成代表节点位置的路径。
    • 如果表达式以反斜杠“\”开头,则表示使用的是绝对路径,否则表示使用的是相对路径。
    • 如果使用属性,那么必须在属性名前面加上“@”符号。
//例如:利用该方法获取XML文档的根节点p的ID属性值为1的子节点
org.dom4j.Node item = p.selectSingleNode("/p/info[@id='1']");


4.删除节点

在需要删除节点时,同样需要查询到要删除的节点。
先获取到要删除的节点后,就可以利用Element对象的remove()方法删除该节点
public booleanremove(Element element)
element:Element对象
返回值:true/false

//例如:要删除的XML文档的根节点p的ID属性值为1的子节点info的代如下
Element i = (Element)p.selectSingleNode("/p/info[@id='1']");
if(null!=i){//非空判断
	p.remove(i);//删除指定节点
}

批量删除指定子节点
doc.getRootElement().elements("info").clear();



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值