java - 从 XML 解析 map

标签 java xml xpath

这是我的 xml

  <body>
      <map>
         <key1>
            value1
         </key1>
         <key2>
            value2
         </key2>
         ....
      </map>
  <body>

我有:

Document xPacket;
XPath xPath = XPathFactory.newInstance().newXPath();
Map<Integer, String> temp = new HashMap<Integer, String>();
Object rawMap = xPath.compile("//body/map/").evaluate(xPacket, XPathConstants.NODESET);
NodeList mapNodeList = (NodeList) rawMap;

但是如何迭代NodeList并在 map 中填充值?

最佳答案

由于您没有另外指定,我假设您正在使用标准 Java 库的类。

NodeList对象有一个 item(int) 方法。您可以使用该方法循环访问 NodeList 中的节点:

Map<Integer, String> map = new HashMap();
for (int i = 0; i < aNodeList.getLength(); i++) {
    Node item = aNodeList.item(i);
    map.put(Integer.valueOf(item.getTextContent()), item.getLocalName());
}

这里我假设您希望将 XML 键节点的文本内容映射到节点的名称(因为映射的类型参数)。

关于java - 从 XML 解析 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21361594/

相关文章:

java - 有没有办法让空包在 Eclipse 中可见?

java - Intellij IDEA 代码覆盖率不起作用

java - 二维数组末尾

php - 通过发送 SOAP 请求实现 Air API

java - Android 更改应用程序主题

python - 正确的 xpath 来卷起子项的文本

c# - Xpath 节点选择 - 如何选择 2 个不同的元素?

java - 用Java编写自定义语法解释器?

xml - 错误 #2044 : Unhandled securityError:. 文本=错误 #2048:违反安全沙箱:

.net - 如何从 .Net 中的许多 HTML 文件中读取 xpath 值?