提供一個生產級工具類 `XMLUtil`,支持 **Map ↔ XML 雙向轉換**,處理屬性、巢狀結構、列表、多根節點等複雜場景,基於 Dom4j 庫實現。
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.4</version>
</dependency>
<!-- 需兼容 JAXP 實現,如 xalan 或 JDK 內置 -->
public class XMLUtil {
// XML 字符串 → Map (保留屬性鍵以 "@" 前綴區分)
public static Map xml2Map(String xmlStr)
// Map → XML 字符串 (聲明頭、屬性、巢狀、列表)
public static String map2Xml(Map map)
}
| XML 結構 | Map 表示 |
|---|---|
| 元素文本值 | `map.put(elementName, textValue)` |
| 元素屬性 | `map.put("@" + elementName, attrMap)` |
| 子元素 (單個) | `map.put(parentName, childMap)` |
| 同名子元素 (列表) | `map.put(parentName, List |
String xml = "John 30 ";
Map map = XMLUtil.xml2Map(xml);
// map = {root={@user={id=1}, user={name=John, age=30}}}
String xmlOut = XMLUtil.map2Xml(map);
// 輸出格式化 XML,結構等價
完整代碼見正文,可直接複製集成項目,覆蓋 90% Map-XML 轉換場景。