public class XmlUtil extends XmlConstants
AMP, APOS, C_AMP, C_APOS, C_BANG, C_GT, C_LT, C_QUEST, COMMENT_PATTERN, GT, INDENT_DEFAULT, INVALID_PATTERN, LT, NBSP, QUOTE
Constructor and Description |
---|
XmlUtil() |
Modifier and Type | Method and Description |
---|---|
static void |
append(Node node,
Object data)
追加数据子节点,可以是Map、集合、文本
|
static Element |
appendChild(Node node,
String tagName)
在已有节点上创建子节点
|
static Element |
appendChild(Node node,
String tagName,
String namespace)
在已有节点上创建子节点
|
static Node |
appendText(Node node,
CharSequence text)
创建文本子节点
|
static Document |
beanToXml(Object bean)
将Bean转换为XML
|
static Document |
beanToXml(Object bean,
String namespace)
将Bean转换为XML
|
static Document |
beanToXml(Object bean,
String namespace,
boolean ignoreNull)
将Bean转换为XML
|
static String |
cleanComment(String xmlContent)
去除XML文本中的注释内容
|
static String |
cleanInvalid(String xmlContent)
去除XML文本中的无效字符
|
static Document |
createXml()
创建XML文档
创建的XML默认是utf8编码,修改编码的过程是在toStr和toFile方法里,即XML在转为文本的时候才定义编码 |
static Document |
createXml(String rootElementName)
创建XML文档
创建的XML默认是utf8编码,修改编码的过程是在toStr和toFile方法里,即XML在转为文本的时候才定义编码 |
static Document |
createXml(String rootElementName,
String namespace)
创建XML文档
创建的XML默认是utf8编码,修改编码的过程是在toStr和toFile方法里,即XML在转为文本的时候才定义编码 |
static String |
elementText(Element element,
String tagName)
根据节点名获得第一个子节点
|
static String |
elementText(Element element,
String tagName,
String defaultValue)
根据节点名获得第一个子节点
|
static String |
format(Document doc)
格式化XML输出
|
static String |
format(String xmlStr)
格式化XML输出
|
static Element |
getElement(Element element,
String tagName)
根据节点名获得第一个子节点
|
static List<Element> |
getElements(Element element,
String tagName)
根据节点名获得子节点列表
|
static Document |
getOwnerDocument(Node node)
获取节点所在的Document
|
static Element |
getRootElement(Document doc)
获得XML文档根节点
|
static boolean |
isElement(Node node)
给定节点是否为
Element 类型节点 |
static Document |
mapToXml(Map<?,?> data,
String rootName)
将Map转换为XML
|
static Document |
mapToXml(Map<?,?> data,
String rootName,
String namespace)
将Map转换为XML
|
static String |
mapToXmlStr(Map<?,?> data)
将Map转换为XML格式的字符串
|
static String |
mapToXmlStr(Map<?,?> data,
boolean omitXmlDeclaration)
将Map转换为XML格式的字符串
当 omitXmlDeclaration 为true 时,表示忽略xml Declaration,即
{@code
|
static String |
mapToXmlStr(Map<?,?> data,
String rootName)
将Map转换为XML格式的字符串
|
static String |
mapToXmlStr(Map<?,?> data,
String rootName,
String namespace)
将Map转换为XML格式的字符串
|
static String |
mapToXmlStr(Map<?,?> data,
String rootName,
String namespace,
boolean omitXmlDeclaration)
将Map转换为XML格式的字符串
当 omitXmlDeclaration 为true 时,表示忽略xml Declaration,即删掉
{@code
|
static String |
mapToXmlStr(Map<?,?> data,
String rootName,
String namespace,
boolean isPretty,
boolean omitXmlDeclaration)
将Map转换为XML格式的字符串
当 omitXmlDeclaration 为true 时,表示忽略xml Declaration,即删掉
{@code
|
static String |
mapToXmlStr(Map<?,?> data,
String rootName,
String namespace,
Charset charset,
boolean isPretty,
boolean omitXmlDeclaration)
将Map转换为XML格式的字符串
当 omitXmlDeclaration 为true 时,表示忽略xml Declaration,即删掉
{@code
|
static Document |
parseXml(String xmlStr)
将String类型的XML转换为XML文档
|
static void |
readBySax(File file,
ContentHandler contentHandler)
使用Sax方式读取指定的XML
如果用户传入的contentHandler为 DefaultHandler ,则其接口都会被处理 |
static void |
readBySax(InputSource source,
ContentHandler contentHandler)
使用Sax方式读取指定的XML
如果用户传入的contentHandler为 DefaultHandler ,则其接口都会被处理 |
static void |
readBySax(InputStream source,
ContentHandler contentHandler)
使用Sax方式读取指定的XML
如果用户传入的contentHandler为 DefaultHandler ,则其接口都会被处理 |
static void |
readBySax(Reader reader,
ContentHandler contentHandler)
使用Sax方式读取指定的XML
如果用户传入的contentHandler为 DefaultHandler ,则其接口都会被处理 |
static Document |
readXml(File file)
读取解析XML文件
|
static Document |
readXml(InputSource source,
boolean namespaceAware)
读取解析XML文件
编码在XML中定义 |
static Document |
readXml(InputStream inputStream)
读取解析XML文件
编码在XML中定义 |
static Document |
readXml(Reader reader)
读取解析XML文件
|
static Document |
readXml(String pathOrContent)
读取解析XML文件
如果给定内容以“<”开头,表示这是一个XML内容,直接读取,否则按照路径处理 路径可以为相对路径,也可以是绝对路径,相对路径相对于ClassPath |
static String |
toStr(Node doc)
|
static String |
toStr(Node doc,
boolean isPretty)
将XML文档转换为String
字符编码使用XML文档中的编码,获取不到则使用UTF-8 |
static String |
toStr(Node doc,
Charset charset,
boolean isPretty)
将XML文档转换为String
字符编码使用XML文档中的编码,获取不到则使用UTF-8 |
static String |
toStr(Node doc,
Charset charset,
boolean isPretty,
boolean omitXmlDeclaration)
将XML文档转换为String
字符编码使用XML文档中的编码,获取不到则使用UTF-8 当 omitXmlDeclaration 为true 时,表示忽略xml Declaration,即删掉
{@code
|
static List<Element> |
transElements(Element parentEle,
NodeList nodeList)
将NodeList转换为Element列表
非Element节点将被忽略 |
static List<Element> |
transElements(NodeList nodeList)
将NodeList转换为Element列表
|
static void |
write(Document doc,
File file,
Charset charset)
将XML文档写入到文件
使用Document中的编码 |
static void |
write(Node node,
OutputStream out,
Charset charset,
int indent)
将XML文档写出
|
static void |
write(Node node,
OutputStream out,
Charset charset,
int indent,
boolean omitXmlDeclaration)
将XML文档写出
当 omitXmlDeclaration 为true 时,表示忽略xml Declaration,即删掉
{@code
|
static void |
write(Node node,
Writer writer,
Charset charset,
int indent)
将XML文档写出
|
static void |
write(Node node,
Writer writer,
Charset charset,
int indent,
boolean omitXmlDeclaration)
将XML文档写出
当 omitXmlDeclaration 为true 时,表示忽略xml Declaration,即删掉
{@code
|
static void |
writeObjectAsXml(File dest,
Object bean)
将可序列化的对象转换为XML写入文件,已经存在的文件将被覆盖
Writes serializable object to a XML file. |
static <T> T |
xmlToBean(Node node,
Class<T> beanClass)
XML转Java Bean
如果XML根节点只有一个,且节点名和Bean的名称一致,则直接转换子节点 |
static <T> T |
xmlToBean(Node node,
Class<T> beanClass,
CopyOptions copyOptions)
XML转Java Bean
如果XML根节点只有一个,且节点名和Bean的名称一致,则直接转换子节点 |
static Map<String,Object> |
xmlToMap(Node node)
XML格式字符串转换为Map
|
static Map<String,Object> |
xmlToMap(Node node,
Map<String,Object> result)
XML节点转换为Map
|
static Map<String,Object> |
xmlToMap(String xmlStr)
XML格式字符串转换为Map
|
static Map<String,Object> |
xmlToMap(String xmlStr,
Map<String,Object> result)
XML格式字符串转换为Map
只支持第一级别的XML,不支持多级XML |
public static Document readXml(String pathOrContent)
pathOrContent
- 内容或路径public static Document readXml(File file)
file
- XML文件public static Document readXml(InputStream inputStream) throws HutoolException
inputStream
- XML流HutoolException
- IO异常或转换异常public static Document readXml(Reader reader) throws HutoolException
reader
- XML流HutoolException
- IO异常或转换异常public static Document readXml(InputSource source, boolean namespaceAware)
namespaceAware
- 是否打开命名空间支持source
- InputSource
public static Document parseXml(String xmlStr)
xmlStr
- XML字符串public static void readBySax(File file, ContentHandler contentHandler)
DefaultHandler
,则其接口都会被处理file
- XML源文件,使用后自动关闭contentHandler
- XML流处理器,用于按照Element处理xmlpublic static void readBySax(Reader reader, ContentHandler contentHandler)
DefaultHandler
,则其接口都会被处理reader
- XML源Reader,使用后自动关闭contentHandler
- XML流处理器,用于按照Element处理xmlpublic static void readBySax(InputStream source, ContentHandler contentHandler)
DefaultHandler
,则其接口都会被处理source
- XML源流,使用后自动关闭contentHandler
- XML流处理器,用于按照Element处理xmlpublic static void readBySax(InputSource source, ContentHandler contentHandler)
DefaultHandler
,则其接口都会被处理source
- XML源,可以是文件、流、路径等contentHandler
- XML流处理器,用于按照Element处理xmlpublic static String toStr(Node doc, boolean isPretty)
doc
- XML文档isPretty
- 是否格式化输出public static String toStr(Node doc, Charset charset, boolean isPretty)
doc
- XML文档charset
- 编码isPretty
- 是否格式化输出public static String toStr(Node doc, Charset charset, boolean isPretty, boolean omitXmlDeclaration)
omitXmlDeclaration
为true
时,表示忽略xml Declaration,即删掉
<?xml version="1.0" encoding="utf-8"?>
doc
- XML文档charset
- 编码isPretty
- 是否格式化输出omitXmlDeclaration
- 是否忽略 xml Declarationpublic static String format(Document doc)
doc
- Document
XML文档public static String format(String xmlStr)
xmlStr
- XML字符串public static void write(Document doc, File file, Charset charset)
doc
- XML文档file
- 文件charset
- 编码public static void write(Node node, Writer writer, Charset charset, int indent)
node
- Node
XML文档节点或文档本身writer
- 写出的Writer,Writer决定了输出XML的编码charset
- 编码indent
- 格式化输出中缩进量,小于1表示不格式化输出public static void write(Node node, Writer writer, Charset charset, int indent, boolean omitXmlDeclaration)
omitXmlDeclaration
为true
时,表示忽略xml Declaration,即删掉
<?xml version="1.0" encoding="utf-8"?>
node
- Node
XML文档节点或文档本身writer
- 写出的Writer,Writer决定了输出XML的编码charset
- 编码indent
- 格式化输出中缩进量,小于1表示不格式化输出omitXmlDeclaration
- 是否忽略 xml Declarationpublic static void write(Node node, OutputStream out, Charset charset, int indent)
node
- Node
XML文档节点或文档本身out
- 写出的Writer,Writer决定了输出XML的编码charset
- 编码indent
- 格式化输出中缩进量,小于1表示不格式化输出public static void write(Node node, OutputStream out, Charset charset, int indent, boolean omitXmlDeclaration)
omitXmlDeclaration
为true
时,表示忽略xml Declaration,即删掉
<?xml version="1.0" encoding="utf-8"?>
node
- Node
XML文档节点或文档本身out
- 写出的Writer,Writer决定了输出XML的编码charset
- 编码indent
- 格式化输出中缩进量,小于1表示不格式化输出omitXmlDeclaration
- 是否忽略 xml Declarationpublic static Document createXml()
public static Document createXml(String rootElementName)
rootElementName
- 根节点名称public static Document createXml(String rootElementName, String namespace)
rootElementName
- 根节点名称namespace
- 命名空间,无则传nullpublic static Element getRootElement(Document doc)
doc
- Document
Document.getDocumentElement()
public static Document getOwnerDocument(Node node)
node
- 节点Document
public static String cleanInvalid(String xmlContent)
xmlContent
- XML文本public static String cleanComment(String xmlContent)
xmlContent
- XML文本public static List<Element> getElements(Element element, String tagName)
element
- 节点tagName
- 节点名,如果节点名为空(null或blank),返回所有子节点public static Element getElement(Element element, String tagName)
element
- 节点tagName
- 节点名public static String elementText(Element element, String tagName)
element
- 节点tagName
- 节点名public static String elementText(Element element, String tagName, String defaultValue)
element
- 节点tagName
- 节点名defaultValue
- 默认值public static List<Element> transElements(NodeList nodeList)
nodeList
- NodeListpublic static List<Element> transElements(Element parentEle, NodeList nodeList)
parentEle
- 父节点,如果指定将返回此节点的所有直接子节点,null返回所有就节点nodeList
- NodeListpublic static void writeObjectAsXml(File dest, Object bean)
dest
- 目标文件bean
- 对象public static <T> T xmlToBean(Node node, Class<T> beanClass)
T
- bean类型node
- XML节点beanClass
- bean类public static <T> T xmlToBean(Node node, Class<T> beanClass, CopyOptions copyOptions)
T
- bean类型node
- XML节点beanClass
- bean类copyOptions
- 拷贝选线,可选是否忽略错误等public static Map<String,Object> xmlToMap(String xmlStr)
xmlStr
- XML字符串public static Map<String,Object> xmlToMap(String xmlStr, Map<String,Object> result)
xmlStr
- XML字符串result
- 结果Map类型public static Map<String,Object> xmlToMap(Node node)
node
- XML节点public static Map<String,Object> xmlToMap(Node node, Map<String,Object> result)
node
- XML节点result
- 结果Map类型public static String mapToXmlStr(Map<?,?> data)
data
- Map类型数据public static String mapToXmlStr(Map<?,?> data, boolean omitXmlDeclaration)
omitXmlDeclaration
为true
时,表示忽略xml Declaration,即
<?xml version="1.0" encoding="utf-8"?>
data
- Map类型数据omitXmlDeclaration
- 是否忽略 xml Declarationpublic static String mapToXmlStr(Map<?,?> data, String rootName)
data
- Map类型数据rootName
- 根节点名public static String mapToXmlStr(Map<?,?> data, String rootName, String namespace)
data
- Map类型数据rootName
- 根节点名namespace
- 命名空间,可以为nullpublic static String mapToXmlStr(Map<?,?> data, String rootName, String namespace, boolean omitXmlDeclaration)
omitXmlDeclaration
为true
时,表示忽略xml Declaration,即删掉
<?xml version="1.0" encoding="utf-8"?>
data
- Map类型数据rootName
- 根节点名namespace
- 命名空间,可以为nullomitXmlDeclaration
- 是否忽略 xml Declarationpublic static String mapToXmlStr(Map<?,?> data, String rootName, String namespace, boolean isPretty, boolean omitXmlDeclaration)
omitXmlDeclaration
为true
时,表示忽略xml Declaration,即删掉
<?xml version="1.0" encoding="utf-8"?>
data
- Map类型数据rootName
- 根节点名namespace
- 命名空间,可以为nullisPretty
- 是否格式化输出omitXmlDeclaration
- 是否忽略 xml Declarationpublic static String mapToXmlStr(Map<?,?> data, String rootName, String namespace, Charset charset, boolean isPretty, boolean omitXmlDeclaration)
omitXmlDeclaration
为true
时,表示忽略xml Declaration,即删掉
<?xml version="1.0" encoding="utf-8"?>
data
- Map类型数据rootName
- 根节点名namespace
- 命名空间,可以为nullcharset
- 编码isPretty
- 是否格式化输出omitXmlDeclaration
- 是否忽略 xml Declarationpublic static Document mapToXml(Map<?,?> data, String rootName)
data
- Map类型数据rootName
- 根节点名public static Document mapToXml(Map<?,?> data, String rootName, String namespace)
data
- Map类型数据rootName
- 根节点名namespace
- 命名空间,可以为nullpublic static Document beanToXml(Object bean)
bean
- Bean对象public static Document beanToXml(Object bean, String namespace)
bean
- Bean对象namespace
- 命名空间,可以为nullpublic static Document beanToXml(Object bean, String namespace, boolean ignoreNull)
bean
- Bean对象namespace
- 命名空间,可以为nullignoreNull
- 忽略值为null
的属性public static boolean isElement(Node node)
Element
类型节点node
- 节点Element
类型节点public static Element appendChild(Node node, String tagName)
node
- 节点tagName
- 标签名public static Element appendChild(Node node, String tagName, String namespace)
node
- 节点tagName
- 标签名namespace
- 命名空间,无传nullpublic static Node appendText(Node node, CharSequence text)
node
- 节点text
- 文本Copyright © 2025. All rights reserved.