Package org.miaixz.bus.core.xyz
Class XmlKit
java.lang.Object
org.miaixz.bus.core.xyz.XmlKit
XML工具类 此工具使用w3c dom工具,不需要依赖第三方包。 工具类封装了XML文档的创建、读取、写出和部分XML操作
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Field Summary
Fields -
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 Document将Bean转换为XMLstatic Document将Bean转换为XMLstatic Document将Bean转换为XMLstatic 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 StringelementText(Element element, String tagName) 根据节点名获得第一个子节点static StringelementText(Element element, String tagName, String defaultValue) 根据节点名获得第一个子节点static String格式化XML输出static String格式化XML输出static ElementgetElement(Element element, String tagName) 根据节点名获得第一个子节点getElements(Element element, String tagName) 根据节点名获得子节点列表static DocumentgetOwnerDocument(Node node) 获取节点所在的Documentstatic ElementgetRootElement(Document doc) 获得XML文档根节点static boolean给定节点是否为Element类型节点static Document将Map转换为XMLstatic Document将Map转换为XMLstatic StringmapToXmlString(Map<?, ?> data) 将Map转换为XML格式的字符串static StringmapToXmlString(Map<?, ?> data, boolean omitXmlDeclaration) 将Map转换为XML格式的字符串 当omitXmlDeclaration为true时,表示忽略xml Declaration,即static StringmapToXmlString(Map<?, ?> data, String rootName) 将Map转换为XML格式的字符串static StringmapToXmlString(Map<?, ?> data, String rootName, String namespace) 将Map转换为XML格式的字符串static StringmapToXmlString(Map<?, ?> data, String rootName, String namespace, boolean omitXmlDeclaration) 将Map转换为XML格式的字符串 当omitXmlDeclaration为true时,表示忽略xml Declaration,即删掉static StringmapToXmlString(Map<?, ?> data, String rootName, String namespace, boolean isPretty, boolean omitXmlDeclaration) 将Map转换为XML格式的字符串 当omitXmlDeclaration为true时,表示忽略xml Declaration,即删掉static StringmapToXmlString(Map<?, ?> data, String rootName, String namespace, Charset charset, boolean isPretty, boolean omitXmlDeclaration) 将Map转换为XML格式的字符串 当omitXmlDeclaration为true时,表示忽略xml Declaration,即删掉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 Document读取解析XML文件static DocumentreadXml(InputStream inputStream) 读取解析XML文件 编码在XML中定义static Document读取解析XML文件static Document读取解析XML文件 如果给定内容以“<”开头,表示这是一个XML内容,直接读取,否则按照路径处理 路径可以为相对路径,也可以是绝对路径,相对路径相对于ClassPathstatic DocumentreadXml(InputSource source, boolean namespaceAware) 读取解析XML文件 编码在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 当omitXmlDeclaration为true时,表示忽略xml Declaration,即删掉transElements(Element parentEle, NodeList nodeList) 将NodeList转换为Element列表 非Element节点将被忽略transElements(NodeList nodeList) 将NodeList转换为Element列表static void将XML文档写入到文件 使用Document中的编码static voidwrite(Node node, OutputStream out, Charset charset, int indent) 将XML文档写出static voidwrite(Node node, OutputStream out, Charset charset, int indent, boolean omitXmlDeclaration) 将XML文档写出 当omitXmlDeclaration为true时,表示忽略xml Declaration,即删掉static void将XML文档写出static void将XML文档写出 当omitXmlDeclaration为true时,表示忽略xml Declaration,即删掉static voidwriteObjectAsXml(File dest, Object bean) 将可序列化的对象转换为XML写入文件,已经存在的文件将被覆盖 Writes serializable object to a XML file.static <T> TXML转Java Bean 如果XML根节点只有一个,且节点名和Bean的名称一致,则直接转换子节点static <T> TxmlToBean(Node node, Class<T> beanClass, CopyOptions copyOptions) XML转Java Bean 如果XML根节点只有一个,且节点名和Bean的名称一致,则直接转换子节点XML格式字符串转换为MapXML格式字符串转换为Map 只支持第一级别的XML,不支持多级XMLXML格式字符串转换为MapXML节点转换为Map
-
Field Details
-
INVALID_PATTERN
在XML中无效的字符 正则 -
COMMENT_PATTERN
在XML中注释的内容 正则
-
-
Constructor Details
-
XmlKit
public XmlKit()
-
-
Method Details
-
readXml
-
readXml
-
readXml
读取解析XML文件 编码在XML中定义- Parameters:
inputStream- XML流- Returns:
- XML文档对象
- Throws:
InternalException- IO异常或转换异常
-
readXml
读取解析XML文件- Parameters:
reader- XML流- Returns:
- XML文档对象
- Throws:
InternalException- IO异常或转换异常
-
readXml
读取解析XML文件 编码在XML中定义- Parameters:
source-InputSourcenamespaceAware- 是否打开命名空间支持- Returns:
- XML文档对象
-
parseXml
-
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
-
toString
将XML文档转换为String 字符编码使用XML文档中的编码,获取不到则使用UTF-8 默认非格式化输出,若想格式化请使用format(Document)- Parameters:
doc- XML文档- Returns:
- XML字符串
-
toString
-
toString
-
toString
public static String toString(Node doc, Charset charset, boolean isPretty, boolean omitXmlDeclaration) 将XML文档转换为String 字符编码使用XML文档中的编码,获取不到则使用UTF-8 当omitXmlDeclaration为true时,表示忽略xml Declaration,即删掉<?xml version="1.0" encoding="utf-8"?>- Parameters:
doc- XML文档charset- 编码isPretty- 是否格式化输出omitXmlDeclaration- 是否忽略 xml Declaration- Returns:
- XML字符串
-
format
-
format
-
write
-
write
-
write
public static void write(Node node, Writer writer, Charset charset, int indent, boolean omitXmlDeclaration) 将XML文档写出 当omitXmlDeclaration为true时,表示忽略xml Declaration,即删掉<?xml version="1.0" encoding="utf-8"?>- 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, Charset charset, int indent, boolean omitXmlDeclaration) 将XML文档写出 当omitXmlDeclaration为true时,表示忽略xml Declaration,即删掉<?xml version="1.0" encoding="utf-8"?>- Parameters:
node-NodeXML文档节点或文档本身out- 写出的Writer,Writer决定了输出XML的编码charset- 编码indent- 格式化输出中缩进量,小于1表示不格式化输出omitXmlDeclaration- 是否忽略 xml Declaration
-
createXml
创建XML文档 创建的XML默认是utf8编码,修改编码的过程是在toStr和toFile方法里,即XML在转为文本的时候才定义编码- Returns:
- XML文档
-
createXml
-
createXml
-
getRootElement
-
getOwnerDocument
-
cleanInvalid
-
cleanComment
-
getElements
-
getElement
-
elementText
-
elementText
-
transElements
-
transElements
-
writeObjectAsXml
-
xmlToBean
-
xmlToBean
XML转Java Bean 如果XML根节点只有一个,且节点名和Bean的名称一致,则直接转换子节点- Type Parameters:
T- bean类型- Parameters:
node- XML节点beanClass- bean类copyOptions- 拷贝选线,可选是否忽略错误等- Returns:
- bean
-
xmlToMap
-
xmlToMap
-
xmlToMap
-
xmlToMap
-
mapToXmlString
-
mapToXmlString
-
mapToXmlString
-
mapToXmlString
-
mapToXmlString
public static String mapToXmlString(Map<?, ?> data, String rootName, String namespace, boolean omitXmlDeclaration) 将Map转换为XML格式的字符串 当omitXmlDeclaration为true时,表示忽略xml Declaration,即删掉<?xml version="1.0" encoding="utf-8"?>- Parameters:
data- Map类型数据rootName- 根节点名namespace- 命名空间,可以为nullomitXmlDeclaration- 是否忽略 xml Declaration- Returns:
- XML格式的字符串
-
mapToXmlString
public static String mapToXmlString(Map<?, ?> data, String rootName, String namespace, boolean isPretty, boolean omitXmlDeclaration) 将Map转换为XML格式的字符串 当omitXmlDeclaration为true时,表示忽略xml Declaration,即删掉<?xml version="1.0" encoding="utf-8"?>- Parameters:
data- Map类型数据rootName- 根节点名namespace- 命名空间,可以为nullisPretty- 是否格式化输出omitXmlDeclaration- 是否忽略 xml Declaration- Returns:
- XML格式的字符串
-
mapToXmlString
public static String mapToXmlString(Map<?, ?> data, String rootName, String namespace, Charset charset, boolean isPretty, boolean omitXmlDeclaration) 将Map转换为XML格式的字符串 当omitXmlDeclaration为true时,表示忽略xml Declaration,即删掉<?xml version="1.0" encoding="utf-8"?>- Parameters:
data- Map类型数据rootName- 根节点名namespace- 命名空间,可以为nullcharset- 编码isPretty- 是否格式化输出omitXmlDeclaration- 是否忽略 xml Declaration- Returns:
- XML格式的字符串
-
mapToXml
-
mapToXml
-
beanToXml
-
beanToXml
-
beanToXml
-
isElement
-
appendChild
-
appendChild
-
appendText
创建文本子节点- Parameters:
node- 节点text- 文本- Returns:
- 子节点
-
append
-