XPath表达式匹配两个关联元素

时间:2018-03-30 02:57:36

标签: xpath

我有以下相关元素的XML:

<doc>
  <!-- A block of style elements. -->
  <styles>
    <style id='style-1' class='bar'>…</style>
    <style id='style-2' class='baz'>…</style>
    …
  </styles>
  <!-- Document content. -->
  <p style='style-1'>…</p>
  <p style='style-2'>…</p>
  …
</doc>

对于XSLT模板,我正在寻找一个XPath表达式匹配“样式为p类的元素bar”?

2 个答案:

答案 0 :(得分:2)

Pure XPath 1.0表达式将返回样式为类bar 的所有元素p:

//p[@style = //style[@class='bar']/@id]

基本上,XPath会查找<p>个元素,style属性等于id的{​​{1}}。

答案 1 :(得分:1)

假设这是文档结构的准确表示,我建议使用它,不要使用双斜线(//),因为双斜线效率非常低:

/doc/p[@style = /doc/styles/style[@class = 'bar']/@id]