Xpath选择具有特定属性的所有属性

时间:2013-01-24 12:09:24

标签: xml xpath

我想要生成包含列的列表:计算机,产品名称,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>

我在Keetle Spoon中使用XPath作为第一列://Data[@name='Computer']/@value但我得到了结果:

约翰 约翰 约翰 约翰

但我想:

约翰 约翰 亚当     汤姆

1 个答案:

答案 0 :(得分:0)

从您的评论中,听起来您正在做的事情涉及使用一个XPath循环遍历节点,然后从该上下文应用另一个XPath,因此您需要使用循环XPath:

/RecoverKeys/Key

和非循环XPath:

Data[@name = 'Computer']/@value