Dom4j详解实例

    技术2024-10-08  64

    项目使用dom4j解析xml格式数据,整理下常见的方法,本文不是完整的文档说明,只是实际中使用的实例!

    1.Dom4j简介

    DOM4J是 开源 XML 解析包,用于解析XML格式的数据。

    实体类说明Document定义了XML 文档Element定义了XML 元素Attribute定义了XML 属性Text定义 XML 文本节点XPathXPath 路径表达式Node定义了XML节点
    2.Dom4j应用
    2.1 创建Document对象
    SAXReader创建document // 通过url地址,获得document对象 public static Document load(URL url) { Document document = null; try { SAXReader saxReader = new SAXReader(); document = saxReader.read(url); } catch (Exception ex) { ex.printStackTrace(); } return document; } // 通过文件路径,获得document对象 public static Document load(String path) { Document document = null; try { SAXReader saxReader = new SAXReader(); document = saxReader.read(path); } catch (Exception ex) { ex.printStackTrace(); } return document; } DocumentHelper创建document // 创建空的document public static Document create() { Document document = DocumentHelper.createDocument(); return document; } // 文本生成document public static Document create(String contentXml) { Document document = null; try { document = DocumentHelper.parseText(contentXml); } catch (DocumentException e) { e.printStackTrace(); } return document; }
    2.2 document 输出
    // document写入指定文件 public static void doc2XmlFile(Document document, String filename) { try { OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("UTF-8"); XMLWriter writer = new XMLWriter(new FileOutputStream(filename), format); writer.write(document); writer.close(); } catch (Exception ex) { ex.printStackTrace(); } } // 转换document对象为字符串 public static String transDocument2Text(Document document, String encoding) throws Exception { OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding(encoding); StringWriter stringWriter = new StringWriter(); XMLWriter writer = new XMLWriter(stringWriter, format); writer.setOutputStream(new FileOutputStream("D:\\Y0705.xml")); writer.write(document); writer.flush(); return stringWriter.toString(); }

    Dom4j通过XMLWriter将Document对象表示的XML树写入指定的文件。 使用OutputFormat格式对象指定写入的风格和编码方法。 调用OutputFormat.createPrettyPrint()方法可以获得的pretty print风格的格式对象。 调用OutputFormat.setEncoding()方法可以指定XML文件的编码方式。

    2.3 Document方法
    方法名称描述信息addElement()创建Element元素remove()移除元素selectNodes()指定xpath下的元素或属性asXML()文档或节点xml转换字符串
    2.4 Element 方法
    方法名称描述信息getName()元素的名称getText()元素所含有的text内容,如果内容为空则返回一个空字符串setText()给元素设置text内容add()元素的添加子元素remove()元素的移除子元素attribute()获取元素的指定属性attributeIterator()元素属性的iterator,其中每个元素都是Attribute对象attributeValue()元素的某个指定属性所含的值addAttribute()元素的添加属性对(名称和值)elementIterator()元素的子元素的iterator,其中每个元素都是Element对象element()元素的某个指定的子元素elementText()元素的某个指定的子元素中的内容element()元素的某个指定的子元素getParent()元素的父元素addComment()元素添加注释信息asXML()元素xml转换成字符串selectNodes()获取指定路径下的xml集合selectSingleNode()获取指定路径下的单xml
    2.4 Attribute 方法
    方法名称描述信息getName()获取属性名getValue()获取属性值getText()获取属性值,底层调用的getValue()方法setValue()设置属性值setText()设置属性值,底层调用的setValue()方法

    至此,Dom4j常用的方法和操作整理完毕,以后有需要再修改增加!

    Processed: 0.010, SQL: 9