我有以下相关元素的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
”?
答案 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]