0

次の列のリストを生成したい:コンピューター、製品名、xmlファイルからのライセンスキー:

<RecoverKeys>
  <Key>
    <Data name="Computer" value="john"/>
    <Data name="Product Name" value="Microsoft Office Professional Hybrid 2007"/>
    <Data name="License Key" value="xxxx-xxxx-xxxx-xxxx-xxxx"/>
    <Data name="Product ID" value="123123-345435-3451345-3453453"/>
    <Data name="User" value="N/A"/>
    <Data name="Company" value="N/A"/>
    <Data name="Auth. Key" value="N/A"/>
  </Key>
  <Key>
    <Data name="Computer" value="john"/>
    <Data name="Product Name" value="Roxio My DVD 9.0"/>
    <Data name="License Key" value="34756674"/>
    <Data name="Product ID" value="N/A"/>
    <Data name="User" value="N/A"/>
    <Data name="Company" value="N/A"/>
    <Data name="Auth. Key" value="N/A"/>
  </Key>
    <Key>
    <Data name="Computer" value="adam"/>
    <Data name="Product Name" value="Roxio My DVD 10.0"/>
    <Data name="License Key" value="456456456"/>
    <Data name="Product ID" value="N/A"/>
    <Data name="User" value="N/A"/>
    <Data name="Company" value="N/A"/>
    <Data name="Auth. Key" value="N/A"/>
  </Key>
    <Key>
    <Data name="Computer" value="tom"/>
    <Data name="Product Name" value="photoshop"/>
    <Data name="License Key" value="2342342423423"/>
    <Data name="Product ID" value="N/A"/>
    <Data name="User" value="N/A"/>
    <Data name="Company" value="N/A"/>
    <Data name="Auth. Key" value="N/A"/>
  </Key>
  </RecoverKeys>

最初の列にKeetleSpoonでXPathを使用しまし//Data[@name='Computer']/@valueたが、結果は次のようになります。

ジョンジョンジョンジョン

でも私はしたい:

ジョンジョンアダムトム

4

1 に答える 1

0

コメントから、1つのXPathでノードをループし、そのコンテキストから別のXPathを適用する必要があるように思われるため、ループXPathを使用する必要があります。

/RecoverKeys/Key

および非ループXPath:

Data[@name = 'Computer']/@value
于 2013-01-24T13:06:11.613 に答える