• XML工具-XmlUtil
    • 由来
    • 使用
      • 读取XML
      • 写XML
      • 创建XML
      • XML操作
      • XML与对象转换
      • Xpath操作
    • 总结

    XML工具-XmlUtil

    由来

    在日常编码中,我们接触最多的除了JSON外,就是XML格式了,一般而言,我们首先想到的是引入Dom4j包,却不知JDK已经封装有XML解析和构建工具:w3c dom。但是由于这个API操作比较繁琐,因此Hutool中提供了XmlUtil简化XML的创建、读和写的过程。

    使用

    读取XML

    读取XML分为两个方法:

    • XmlUtil.readXML 读取XML文件
    • XmlUtil.parseXml 解析XML字符串为Document对象

    写XML

    • XmlUtil.toStr 将XML文档转换为String
    • XmlUtil.toFile 将XML文档写入到文件

    创建XML

    • XmlUtil.createXml 创建XML文档, 创建的XML默认是utf8编码,修改编码的过程是在toStr和toFile方法里,既XML在转为文本的时候才定义编码。

    XML操作

    通过以下工具方法,可以完成基本的节点读取操作。

    • XmlUtil.cleanInvalid 除XML文本中的无效字符
    • XmlUtil.getElements 根据节点名获得子节点列表
    • XmlUtil.getElement 根据节点名获得第一个子节点
    • XmlUtil.elementText 根据节点名获得第一个子节点
    • XmlUtil.transElements 将NodeList转换为Element列表

    XML与对象转换

    • writeObjectAsXml 将可序列化的对象转换为XML写入文件,已经存在的文件将被覆盖。
    • readObjectFromXml 从XML中读取对象。

    注意这两个方法严重依赖JDK的XMLEncoderXMLDecoder,生成和解析必须成对存在(遵循固定格式),普通的XML转Bean会报错。

    Xpath操作

    Xpath的更多介绍请看文章:https://www.ibm.com/developerworks/cn/xml/x-javaxpathapi.html

    • createXPath 创建XPath
    • getByXPath 通过XPath方式读取XML节点等信息栗子:
    1. <?xml version="1.0" encoding="utf-8"?>
    2. <returnsms>
    3. <returnstatus>Success(成功)</returnstatus>
    4. <message>ok</message>
    5. <remainpoint>1490</remainpoint>
    6. <taskID>885</taskID>
    7. <successCounts>1</successCounts>
    8. </returnsms>
    1. Document docResult=XmlUtil.readXML(xmlFile);
    2. //结果为“ok”
    3. Object value = XmlUtil.getByXPath("//returnsms/message", docResult, XPathConstants.STRING);

    总结

    XmlUtil只是w3c dom的简单工具化封装,减少操作dom的难度,如果项目对XML依赖较大,依旧推荐Dom4j框架。