包含属性的Xpath

时间:2011-04-03 04:05:03

标签: xml xpath

鉴于此XML:

<log> 
  <xplmsg logdate="31-03-11 23:30:55" > 
    <schema> 
      <infopairs> 
        <info name="device"  value="Blah Humidity" ></info> 
        <info name="type"  value="humidity" ></info> 
      </infopairs> 
    </schema> 
  </xplmsg> 
</log> 

xPath会返回什么:

  <xplmsg logdate="31-03-11 23:30:55" > 
    <schema> 
      <infopairs> 
        <info name="device"  value="Blah Humidity" ></info> 
        <info name="type"  value="humidity" ></info> 
      </infopairs> 
    </schema> 
  </xplmsg>

包括logdate =“31-03-11 23:30:55”

2 个答案:

答案 0 :(得分:2)

我想你想要

/log/xplmsg[@logdate = '31-03-11 23:30:55']

答案 1 :(得分:0)

虽然@Alejandro的回答是正确的,但甚至更简单的XPath表达式可以精确地选择想要的元素:

/*/xplmsg 

甚至

/*/*

这是因为在提供的XML文档中,top元素只有一个子元素 - 在这种情况下,没有必要指定特定的属性名称/值,甚至不需要指定我们想要的元素的名称被选中。

如果您想要选择xplmsg子树的所有节点,请使用此XPath表达式:

/*/xplmsg//@*  |   /*/xplmsg//node()