假设我目前有这个代码:
<p>
<greeting>
<a name="hello">Hello!</a>
</greeting>
</p>
<ul>
<p>This paragraph needs to be selected</p>
</ul>
基本上,在<a>
第一部分的元素中,我需要选择<ul>
下面元素的所有子元素。有没有办法在 XSLT 中做到这一点?
假设您位于a元素上,那么以下两个表达式中的任何一个都可以工作
<xsl:value-of select="../../following-sibling::ul[1]/p" />
<xsl:value-of select="ancestor::p[1]/following-sibling::ul[1]/p" />
在这种情况下,第一个假设a是“孙子”,而第二个将在任何级别与a一起使用,但假设您要检查的相关“祖先”始终是 a p。
理想情况下,您需要知道<p>
and的父级<ul>
。假设元素是<x>
,您将使用祖先轴选择它,然后将路径附加到您想要的后代:
<xsl:copy-of select="ancestor::x/ul/*">
或者,如果这是变量,您可以使用通配符:
<xsl:copy-of select="ancestor::*[3]/ul/*">