dom4j应用示例

本文介绍了dom4j中的Document接口及其创建方式,重点讲解了DocumentHelper的常用方法,如创建Attribute、Element等。同时,详细探讨了Element对象的操作,包括添加、查询、修改和删除Attribute及子节点的方法,以及与节点内容相关的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Document

    dom4j的Document是一个接口,获得其实现主要有一下三种方式

    ① Document doc = DocumentHelper.parseText(xmlString);
    ② SAXReader reader = new SAXReader();
    Document doc = reader.read(new File(xmlFilepath)); 
    ③ Document doc = DocumentHelper.createDocument();

2.Document常用方法

    addDocType(String name, String publicId, String systemId)
    setDocType(DocumentType docType)
    getDocType()
    setXMLEncoding()
    getXMLEncoding()

3.DocumentHelper:包含创建各种对象的静态方法

    DocumentHelper.createAttribute    DocumentHelper.createCDATA    DocumentHelper.createComment.

   DocumentHelper.createDocument    DocumentHelper.createElement    DocumentHelper.createQName

   DocumentHelper.createText ....等方法

4.Element:操作xml最重要的对象

    1. add方法无返回值,addXxx返回调用它的Element对象自身。抛开返回值,从作用上讲add与addXxx方法是一一对应且作用相同的。

    例如 void add(Attribute attribute) 和 Element addAttribute(String name, String value)、void add(Text text) 和 Element addText(String text)、void add(CDATA cdata) 和 Element addCDATA(String cdata) ......等

    2. 与节点属性有关的方法

    返回单个Attribute对象的方法:

    attribute(int index)//index从0开始,按索引返回
    attribute(String name)//按属性name返回
    attribute(QName qName)//按QName对象返回
    返回Attribute对象个数的方法:attributeCount()

    可以获取所有Attribute对象的方法:

    List attributes()//返回调用该方法的Element对象的所有属性对象
    Iterator attributeIterator()//返回Attribute对象迭代器

    直接获取属性值的方法

    attributeValue(String name)    attributeValue(QName qName)
    attributeValue(String name, String defaultValue)//获取不到的时候返回defaultValue
    attributeValue(QName qName, String defaultValue)//获取不到的时候返回defaultValue

    删除属性

    remove(Attribute attribute)

    3. 与子节点有关的方法

    返回单个子节点的方法

    element(String name)//如果符合条件的子节点有多个,返回第一个
    element(QName qName)//如果符合条件的子节点有多个,返回第一个
    获取所有子节点的方法

    List elements()//返回当前节点的所有子节点
    Iterator elementIterator()//返回子节点迭代器
    筛选子节点的方法

    List elements(String name)    List elements(QName qName)
    Iterator elementIterator(String name)    Iterator elementIterator(QName qName)

    删除子节点的方法

    remove(Element element)

    备注:上述方法仅获取一个节点的“子”节点,而不涉及“孙”节点以及更深层次的节点

    4. 与节点存储内容有关的方法

    getData()//如果调用此方法的Element对象没有<![CDATA[]]>标记,该方法与getText()方法返回的结果相同
    elementText(String name)//返回调用该方法的节点的“子节点”的文本内容,如果满足条件的子节点有多个,返回第一个的文本
    elementText(QName qName)//与上一个方法逻辑相同
    elementTextTrim(String name)//xml文件通常是格式化的,所以节点的文本会包含多余的空格键和回车换行键,带trim的方法用于用于消除这些多余文本
    elementTextTrim(QName qName)//与上一个方法逻辑相同
    getText()//这个方法返回调用它的节点的文本内容,而elementText方法返回的是子节点的文本内容
    getTextTrim()//返回getText方法trim之后的结果
    setName(String name)//改变节点名称
    setText(String text)//改变节点的文本内容

    打开dom4j-1.6.1的源码发现关于CDATA的方法都没有实现
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值