使用REST保证XmlPath查找所有XML节点

时间:2015-02-03 12:22:25

标签: java rest rest-assured gpath

假设我有以下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"));
}

我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

仅执行以下操作是否足够?

List<String> links = xmlPath.get("**.findAll { it.name() == 'link' }.@href");
...