我正在尝试使用放心设置集成测试。在我的一个测试用例中,我必须使用可靠的 XmlPath 验证 XML 文件的某些属性,这似乎使用了 Groovy 的 GPath。
我有一个具有以下结构的 XML 文档(ID 是唯一的):
<rootelement>
<someelement id="1234" type="a">
<property key="hello" value="world" />
<property key="name" value="a name" />
<property key="status" value="new" />
<child target="645823" type="a" />
<child target="7482" type="b" />
<child target="8942" type="c">
<property key="pro" value="yes" />
</child>
</someelement>
<someelement>
...
</someelement>
<rootelement>
理想情况下,给定一个 someelement id,我想得到一个它的属性的映射,即假设给定的 someelement id 是 1234 我想得到一个如下所示的映射:
{"hello": "world", "name": "a name", "status": "new"}
。我该怎么做?我知道 XmlPath 中有一个 getMap 方法,但我不知道必须使用哪个表达式。
如果无法将属性作为地图获取,我会满足于获取键列表和值列表。同样,我不知道我必须使用哪种表达方式。我尝试过这样的事情:
xmlPath.getList("**.find {it.@id = '1234'}.property.@key", String.class)
但是,它什么也没找到。