当前位置: 首页 > >

dom4j应用示例

发布时间:

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对象没有标记,该方法与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的方法都没有实现



友情链接: