import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
import java.util.*;
public class XMLStringToMap {
public static Map<String, String> xmlStringToMap(String xml) {
Map<String, String> map = new HashMap<>();
try {
// 创建一个DocumentBuilderFactory对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// 创建一个DocumentBuilder对象
DocumentBuilder builder = factory.newDocumentBuilder();
// 将XML字符串转换为输入流
InputStream inputStream = new ByteArrayInputStream(xml.getBytes("UTF-8"));
// 解析XML文档,生成Document对象
Document document = builder.parse(inputStream);
// 获取文档的根元素
Element root = document.getDocumentElement();
// 遍历根元素的所有子节点
NodeList nodeList = root.getChildNodes();
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node instanceof Element) {
// 获取元素的标签名和文本内容,并存入map中
map.put(node.getNodeName(), node.getTextContent());
}
}
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
public static void main(String[] args) {
String xml = "<root><name>John</name><age>30</age><city>New York</city></root>";
Map<String, String> map = xmlStringToMap(xml);
System.out.println(map);
}
}
DocumentBuilderFactory
是工厂类,负责创建DocumentBuilder
实例。DocumentBuilder
用于将XML字符串解析成Document
对象。DocumentBuilder
可以解析它。NodeList
表示XML文档中的节点列表,Node
表示单个节点。通过遍历NodeList
,可以提取每个元素的标签名和文本内容。Map
中。这个示例代码将给定的XML字符串解析为一个Map<String, String>
,其中键是XML元素的标签名,值是对应的文本内容。
上一篇:java单元测试工具
下一篇:java队列queue使用场景
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站