Package org.aoju.bus.core.toolkit
Class XmlKit
java.lang.Object
org.aoju.bus.core.toolkit.XmlKit
XML工具类
此工具使用w3c dom工具,不需要依赖第三方包
工具类封装了XML文档的创建、读取、写出和部分XML操作
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic void追加数据子节点,可以是Map、集合、文本static ElementappendChild(Node node, String tagName) 在已有节点上创建子节点static ElementappendChild(Node node, String tagName, String namespace) 在已有节点上创建子节点static NodeappendText(Node node, CharSequence text) 创建文本子节点static DocumentBuilderbuilder()创建 DocumentBuilderstatic String将xml节点转小写static StringcleanComment(String xmlContent) 去除XML文本中的注释内容static StringcleanInvalid(String xmlContent) 去除XML文本中的无效字符static Document创建XML文档 创建的XML默认是utf8编码,修改编码的过程是在toStr和toFile方法里,既XML在转为文本的时候才定义编码static Document创建XML文档 创建的XML默认是utf8编码,修改编码的过程是在toStr和toFile方法里,即XML在转为文本的时候才定义编码static Document创建XML文档 创建的XML默认是utf8编码,修改编码的过程是在toStr和toFile方法里,即XML在转为文本的时候才定义编码static XPath创建XPathstatic String转义XML特殊字符:static StringescapeToXml(String xml) 替换xml中特殊字符static String格式化XML输出static String格式化XML输出static ObjectgetByXPath(String expression, Object source, QName returnType) 通过XPath方式读取XML节点等信息static ElementgetElement(Document doc) 获得XML文档根节点static ElementgetElement(Element element, String tagName) 根据节点名获得第一个子节点static DocumentgetElement(Node node) 获取节点所在的Documentstatic ElementgetElementByXPath(String expression, Object source) 通过XPath方式读取XML节点等信息static Stringstatic NodegetNodeByXPath(String expression, Object source) 通过XPath方式读取XML节点等信息static NodeListgetNodeListByXPath(String expression, Object source) 通过XPath方式读取XML的NodeListstatic String根据节点名获得第一个子节点static String根据节点名获得第一个子节点static boolean给定节点是否为Element类型节点static Document将Map转换为XMLstatic String将MAP对象转换为XML格式static Document将String类型的XML转换为XML文档static voidreadBySax(File file, ContentHandler contentHandler) 使用Sax方式读取指定的XML 如果用户传入的contentHandler为DefaultHandler,则其接口都会被处理static voidreadBySax(InputStream source, ContentHandler contentHandler) 使用Sax方式读取指定的XML 如果用户传入的contentHandler为DefaultHandler,则其接口都会被处理static voidreadBySax(Reader reader, ContentHandler contentHandler) 使用Sax方式读取指定的XML 如果用户传入的contentHandler为DefaultHandler,则其接口都会被处理static voidreadBySax(InputSource source, ContentHandler contentHandler) 使用Sax方式读取指定的XML 如果用户传入的contentHandler为DefaultHandler,则其接口都会被处理static <T> TreadObjectFromXml(File source) 从XML中读取对象 Reads serialized object from the XML file.static <T> TreadObjectFromXml(String xmlStr) 从XML中读取对象 Reads serialized object from the XML file.static <T> TreadObjectFromXml(InputSource source) 从XML中读取对象 Reads serialized object from the XML file.static Document读取解析XML文件static DocumentreadXML(InputStream inputStream) 读取解析XML文件 编码在XML中定义static Document读取解析XML文件static Document读取解析XML文件 如果给定内容以“<”开头,表示这是一个XML内容,直接读取,否则按照路径处理 路径可以为相对路径,也可以是绝对路径,相对路径相对于ClassPathstatic DocumentreadXML(InputSource source) 读取解析XML文件 编码在XML中定义static String将XML内的所有属性大写或小写static void将XML文档写入到文件 使用Document中的编码static void将XML文档写入到文件static String将XML文档转换为String 字符编码使用XML文档中的编码,获取不到则使用UTF-8 默认非格式化输出,若想格式化请使用format(Document)static String将XML文档转换为String 字符编码使用XML文档中的编码,获取不到则使用UTF-8static String将XML文档转换为String 字符编码使用XML文档中的编码,获取不到则使用UTF-8static String将XML文档转换为String 字符编码使用XML文档中的编码,获取不到则使用UTF-8 默认非格式化输出,若想格式化请使用format(Document)static String将XML文档转换为String 字符编码使用XML文档中的编码,获取不到则使用UTF-8static String将XML文档转换为String 字符编码使用XML文档中的编码,获取不到则使用UTF-8static String将XML文档转换为String 字符编码使用XML文档中的编码,获取不到则使用UTF-8static voidtoXml(Map<String, Object> map, StringBuffer buffer) map 转xmltransElements(Element parentEle, NodeList nodeList) 将NodeList转换为Element列表 非Element节点将被忽略transElements(NodeList nodeList) 将NodeList转换为Element列表static void将XML文档写出static void将XML文档写出static voidwrite(Node node, OutputStream out, String charset, int indent) 将XML文档写出static voidwrite(Node node, OutputStream out, String charset, int indent, boolean omitXmlDeclaration) 将XML文档写出static void将XML文档写出static void将XML文档写出static <T> TXML转Java BeanXML格式字符串转换为MapXML格式字符串转换为Map 只支持第一级别的XML,不支持多级XMLXML格式字符串转换为MapXML节点转换为Map
-
Constructor Details
-
XmlKit
public XmlKit()
-
-
Method Details
-
readXML
读取解析XML文件- Parameters:
file- XML文件- Returns:
- XML文档对象
-
readXML
读取解析XML文件 如果给定内容以“<”开头,表示这是一个XML内容,直接读取,否则按照路径处理 路径可以为相对路径,也可以是绝对路径,相对路径相对于ClassPath- Parameters:
pathOrContent- 内容或路径- Returns:
- XML文档对象
-
readXML
读取解析XML文件 编码在XML中定义- Parameters:
inputStream- XML流- Returns:
- XML文档对象
-
readXML
读取解析XML文件- Parameters:
reader- XML流- Returns:
- XML文档对象
-
readXML
读取解析XML文件 编码在XML中定义- Parameters:
source-InputSource- Returns:
- XML文档对象
-
readBySax
使用Sax方式读取指定的XML 如果用户传入的contentHandler为DefaultHandler,则其接口都会被处理- Parameters:
file- XML源文件,使用后自动关闭contentHandler- XML流处理器,用于按照Element处理xml
-
readBySax
使用Sax方式读取指定的XML 如果用户传入的contentHandler为DefaultHandler,则其接口都会被处理- Parameters:
reader- XML源Reader,使用后自动关闭contentHandler- XML流处理器,用于按照Element处理xml
-
readBySax
使用Sax方式读取指定的XML 如果用户传入的contentHandler为DefaultHandler,则其接口都会被处理- Parameters:
source- XML源流,使用后自动关闭contentHandler- XML流处理器,用于按照Element处理xml
-
readBySax
使用Sax方式读取指定的XML 如果用户传入的contentHandler为DefaultHandler,则其接口都会被处理- Parameters:
source- XML源,可以是文件、流、路径等contentHandler- XML流处理器,用于按照Element处理xml
-
readObjectFromXml
从XML中读取对象 Reads serialized object from the XML file.- Type Parameters:
T- 对象类型- Parameters:
source- XML文件- Returns:
- 对象
-
readObjectFromXml
从XML中读取对象 Reads serialized object from the XML file.- Type Parameters:
T- 对象类型- Parameters:
xmlStr- XML内容- Returns:
- 对象
-
readObjectFromXml
从XML中读取对象 Reads serialized object from the XML file.- Type Parameters:
T- 对象类型- Parameters:
source-InputSource- Returns:
- 对象
-
parseXml
将String类型的XML转换为XML文档- Parameters:
xmlStr- XML字符串- Returns:
- XML文档
-
toString
将XML文档转换为String 字符编码使用XML文档中的编码,获取不到则使用UTF-8 默认非格式化输出,若想格式化请使用format(Document)- Parameters:
doc- XML文档- Returns:
- XML字符串
-
toString
将XML文档转换为String 字符编码使用XML文档中的编码,获取不到则使用UTF-8 默认非格式化输出,若想格式化请使用format(Document)- Parameters:
doc- XML文档- Returns:
- XML字符串
-
toString
将XML文档转换为String 字符编码使用XML文档中的编码,获取不到则使用UTF-8- Parameters:
doc- XML文档isPretty- 是否格式化输出- Returns:
- XML字符串
-
toString
将XML文档转换为String 字符编码使用XML文档中的编码,获取不到则使用UTF-8- Parameters:
doc- XML文档isPretty- 是否格式化输出- Returns:
- XML字符串
-
toString
将XML文档转换为String 字符编码使用XML文档中的编码,获取不到则使用UTF-8- Parameters:
doc- XML文档charset- 编码isPretty- 是否格式化输出- Returns:
- XML字符串
-
toString
将XML文档转换为String 字符编码使用XML文档中的编码,获取不到则使用UTF-8- Parameters:
doc- XML文档charset- 编码isPretty- 是否格式化输出- Returns:
- XML字符串
-
toString
public static String toString(Node doc, String charset, boolean isPretty, boolean omitXmlDeclaration) 将XML文档转换为String 字符编码使用XML文档中的编码,获取不到则使用UTF-8- Parameters:
doc- XML文档charset- 编码isPretty- 是否格式化输出omitXmlDeclaration- 是否忽略 xml Declaration- Returns:
- XML字符串
-
toFile
将XML文档写入到文件 使用Document中的编码- Parameters:
doc- XML文档absolutePath- 文件绝对路径,不存在会自动创建
-
toFile
将XML文档写入到文件- Parameters:
doc- XML文档path- 文件路径绝对路径或相对ClassPath路径,不存在会自动创建charset- 自定义XML文件的编码,如果为null读取XML文档中的编码,否则默认UTF-8
-
format
格式化XML输出- Parameters:
doc-DocumentXML文档- Returns:
- 格式化后的XML字符串
-
format
格式化XML输出- Parameters:
xmlStr- XML字符串- Returns:
- 格式化后的XML字符串
-
write
将XML文档写出- Parameters:
node-NodeXML文档节点或文档本身writer- 写出的Writer,Writer决定了输出XML的编码charset- 编码indent- 格式化输出中缩进量,小于1表示不格式化输出
-
write
public static void write(Node node, Writer writer, String charset, int indent, boolean omitXmlDeclaration) 将XML文档写出- Parameters:
node-NodeXML文档节点或文档本身writer- 写出的Writer,Writer决定了输出XML的编码charset- 编码indent- 格式化输出中缩进量,小于1表示不格式化输出omitXmlDeclaration- 是否输出 xml Declaration
-
write
将XML文档写出- Parameters:
node-NodeXML文档节点或文档本身out- 写出的Writer,Writer决定了输出XML的编码charset- 编码indent- 格式化输出中缩进量,小于1表示不格式化输出
-
write
public static void write(Node node, OutputStream out, String charset, int indent, boolean omitXmlDeclaration) 将XML文档写出- Parameters:
node-NodeXML文档节点或文档本身out- 写出的Writer,Writer决定了输出XML的编码charset- 编码indent- 格式化输出中缩进量,小于1表示不格式化输出omitXmlDeclaration- 是否输出 xml Declaration
-
transform
将XML文档写出- Parameters:
source- 源result- 目标charset- 编码indent- 格式化输出中缩进量,小于1表示不格式化输出
-
transform
public static void transform(Source source, Result result, String charset, int indent, boolean omitXmlDeclaration) 将XML文档写出- Parameters:
source- 源result- 目标charset- 编码indent- 格式化输出中缩进量,小于1表示不格式化输出omitXmlDeclaration- 是否输出 xml Declaration
-
createXml
创建XML文档 创建的XML默认是utf8编码,修改编码的过程是在toStr和toFile方法里,既XML在转为文本的时候才定义编码- Returns:
- XML文档
-
createXml
创建XML文档 创建的XML默认是utf8编码,修改编码的过程是在toStr和toFile方法里,即XML在转为文本的时候才定义编码- Parameters:
rootElementName- 根节点名称- Returns:
- XML文档
-
createXml
创建XML文档 创建的XML默认是utf8编码,修改编码的过程是在toStr和toFile方法里,即XML在转为文本的时候才定义编码- Parameters:
rootElementName- 根节点名称namespace- 命名空间,无则传null- Returns:
- XML文档
-
getElement
获得XML文档根节点- Parameters:
doc-Document- Returns:
- 根节点
- See Also:
-
getElement
根据节点名获得第一个子节点- Parameters:
element- 节点tagName- 节点名- Returns:
- 节点
-
getElement
获取节点所在的Document- Parameters:
node- 节点- Returns:
Document
-
getText
根据节点名获得第一个子节点- Parameters:
element- 节点tagName- 节点名- Returns:
- 节点中的值
-
getText
根据节点名获得第一个子节点- Parameters:
element- 节点tagName- 节点名defaultValue- 默认值- Returns:
- 节点中的值
-
transElements
将NodeList转换为Element列表- Parameters:
nodeList- NodeList- Returns:
- Element列表
-
transElements
将NodeList转换为Element列表 非Element节点将被忽略- Parameters:
parentEle- 父节点,如果指定将返回此节点的所有直接子节点,nul返回所有就节点nodeList- NodeList- Returns:
- Element列表
-
getByXPath
通过XPath方式读取XML节点等信息- Parameters:
expression- XPath表达式source- 资源,可以是Docunent、Node节点等returnType- 返回类型,XPathConstants- Returns:
- 匹配返回类型的值
-
getElementByXPath
通过XPath方式读取XML节点等信息- Parameters:
expression- XPath表达式source- 资源,可以是Docunent、Node节点等- Returns:
- 匹配返回类型的值
-
getNodeListByXPath
通过XPath方式读取XML的NodeList- Parameters:
expression- XPath表达式source- 资源,可以是Docunent、Node节点等- Returns:
- NodeList
-
getNodeByXPath
通过XPath方式读取XML节点等信息- Parameters:
expression- XPath表达式source- 资源,可以是Docunent、Node节点等- Returns:
- 匹配返回类型的值
-
xmlToMap
XML格式字符串转换为Map- Parameters:
xmlStr- XML字符串- Returns:
- XML数据转换后的Map
-
xmlToMap
XML格式字符串转换为Map- Parameters:
node- XML节点- Returns:
- XML数据转换后的Map
-
xmlToMap
XML格式字符串转换为Map 只支持第一级别的XML,不支持多级XML- Parameters:
xmlStr- XML字符串result- 结果Map类型- Returns:
- XML数据转换后的Map
-
xmlToMap
XML节点转换为Map- Parameters:
node- XML节点result- 结果Map类型- Returns:
- XML数据转换后的Map
-
xmlToBean
XML转Java Bean- Type Parameters:
T- bean类型- Parameters:
node- XML节点bean- bean类- Returns:
- bean
-
mapToXml
将MAP对象转换为XML格式- Parameters:
map- 对象信息- Returns:
- xml字符串
-
mapToXml
将Map转换为XML- Parameters:
data- Map类型数据rootName- 节点- Returns:
- XML
-
escapeToXml
替换xml中特殊字符- Parameters:
xml- 字符串信息- Returns:
- 字符串
-
caseToXml
将xml节点转小写- Parameters:
xml- 字符串- Returns:
- xml字符串
-
getField
- Parameters:
xml- 字符串field- 要获取的字段名- Returns:
- 返回该字段的值
-
builder
创建 DocumentBuilder- Returns:
- DocumentBuilder
-
createXPath
创建XPath- Returns:
XPath
-
cleanInvalid
去除XML文本中的无效字符- Parameters:
xmlContent- XML文本- Returns:
- 当传入为null时返回null
-
cleanComment
去除XML文本中的注释内容- Parameters:
xmlContent- XML文本- Returns:
- 当传入为null时返回null
-
isElement
给定节点是否为Element类型节点- Parameters:
node- 节点- Returns:
- 是否为
Element类型节点
-
append
追加数据子节点,可以是Map、集合、文本- Parameters:
node- 节点data- 数据
-
appendChild
在已有节点上创建子节点- Parameters:
node- 节点tagName- 标签名- Returns:
- 子节点
-
appendChild
在已有节点上创建子节点- Parameters:
node- 节点tagName- 标签名namespace- 命名空间,无传null- Returns:
- 子节点
-
appendText
创建文本子节点- Parameters:
node- 节点text- 文本- Returns:
- 子节点
-
escape
转义XML特殊字符:& (ampersand) 替换为 & < (小于) 替换为 < > (大于) 替换为 > " (双引号) 替换为 "
- Parameters:
string- 被替换的字符串- Returns:
- 替换后的字符串
-
toCase
将XML内的所有属性大写或小写- Parameters:
xml- XML字符串type- 转换类型,即:大写 false / 小写 true- Returns:
- 转换后的XML
-
toXml
map 转xml- Parameters:
map- map 对象buffer- 返回字符
-