我正在使用TinyXPath来增强现有的测试工具,以便可以获取和使用来自客户XML结构的数据。
XML看起来像这样
<Platform>
<LinkData>
<Plan>
<Label>A</Label>
<Settings>
<SomeSetting1>ENABLED</SomeSetting1>
<SomeSetting2>ENABLED</SomeSetting2>
</Settings>
</Plan>
<Plan>
<Label>B</Label>
<Settings>
<SomeSetting1>ENABLED</SomeSetting1>
<SomeSetting2>DISABLED</SomeSetting2>
</Settings>
</Plan>
</LinkData>
</Platform>
鉴于我无法控制的上述结构,我需要能够为TinyXPath构造XPath表达式。简单地说,当正确的子Label值匹配时,TinyXPath需要返回SomeSetting1 / 2字段中的值(解析为true),因此测试应用可以使用它们。
我已尝试过以下方法,但是使用子元素编制索引(通常我会期望使用属性。这是我的尝试不返回结果(例如ENABLED / DISABLED): -
Platform/LinkData/Plan[child::Label='A']/Settings/SomeSetting1/text()
Platform/LinkData/Plan[child::Label='A']/Settings/SomeSetting2/text()
Platform/LinkData/Plan[child::Label='B']/Settings/SomeSetting1/text()
Platform/LinkData/Plan[child::Label='B']/Settings/SomeSetting2/text()
TinyXPath专家的任何进一步帮助将非常感谢 - 谢谢!
答案 0 :(得分:0)
此xpath将使用给定的XML返回您要查找的内容:
//Settings/child::node()/text()
此xpath还将通过concat |
添加对标签和分组的检查:
//LinkData/Plan[Label/text()='A']/Settings/child::node()/text() | //LinkData/Plan[Label/text()='B']/Settings/child::node()/text()
这个将它们组合在标签检查中:
//LinkData/Plan[Label/text()='A' or Label/text()='B']/Settings/child::node()/text()
希望这有帮助!