java如何将string字符串"<abc>1234</abc>"转为map?
时间: 2024-12-17 17:54:25 浏览: 1
在Java中,将像 `<abc>1234</abc>` 这样的XML字符串转换成Map通常需要使用一些库,如JAXB (Java Architecture for XML Binding) 或者DOM解析器配合第三方库如DOM4J或JSR-311提供的API。这里我们假设XML格式有一定的结构规则,并且键值对是以`<key>value</key>`的形式存在。
使用DOM4J库为例,你可以这样做:
```java
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.InputSource;
import javax.xml.parsers.DocumentBuilder;
Document document = null;
Map<String, String> map = new HashMap<>();
try {
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
InputSource is = new InputSource(new StringReader(xmlString));
document = builder.parse(is);
// 获取根元素
Element rootElement = document.getDocumentElement();
// 遍历所有子元素
NodeList nodeList = rootElement.getElementsByTagName("key");
for (int i = 0; i < nodeList.getLength(); i++) {
Element keyNode = (Element) nodeList.item(i);
String key = keyNode.getTextContent();
// 检查是否存在对应的value元素
Element valueNode = keyNode.getParentNode().getFirstChild();
if (valueNode != null && valueNode.getNodeName().equals("value")) {
String value = valueNode.getTextContent();
map.put(key, value);
}
}
} catch (Exception e) {
e.printStackTrace();
}
阅读全文