假设我有以下XML文档:
<Devices>
<Scanners>
<atom:link href="http://localhost/111" rel="http://1" />
<atom:link href="http://localhost/222" rel="http://2" />
</Scanners>
<Printers>
<atom:link href="http://localhost/333" rel="http://3" />
<atom:link href="http://localhost/444" rel="http://4" />
</Printers>
<atom:link href="http://localhost/555" rel="http://5" />
</Devices>
使用REST确保的XmlPath
我想将所有<atom:link>
节点 - 实际上是它们的属性列表 - 读入列表,而不管节点在树中的位置。到目前为止,我的代码看起来像这样:
XmlPath xmlPath = new XmlPath(response);
// This gives me a list of five entries --> OK
List<Node> linkNodes = xmlPath.get("depthFirst().findAll { it.name() == 'link' }");
// This prints five empty lines --> NOT OK
for (Node linkNode : linkNodes) {
System.out.println(linkNode.get("@href"));
}
我在这里缺少什么?
答案 0 :(得分:3)
仅执行以下操作是否足够?
List<String> links = xmlPath.get("**.findAll { it.name() == 'link' }.@href");
...