0

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式を作成できる必要があります。簡単に言えば、TinyXPathは、正しい子ラベル値が一致する(trueに解決される)ときに指定されたSomeSetting1 / 2フィールドの値を返す必要があるため、テストアプリはそれらを使用できます。

私は次のことを試しましたが、方法の問題は子要素を使用してインデックス付けされています(通常は属性の使用を期待します。これが結果を返さない私の試みです(例: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の達人からのさらなる助けをいただければ幸いです-ありがとう!

4

1 に答える 1

0

このxpathは、指定されたXMLで探しているものを返します。

//Settings/child::node()/text()

このxpathは、ラベルとgroupbyconcatのチェックも追加し|ます。

//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()

お役に立てれば!

于 2012-04-05T13:04:21.597 に答える