假设我目前有这段代码:
<p>
<greeting>
<a name="hello">Hello!</a>
</greeting>
</p>
<ul>
<p>This paragraph needs to be selected</p>
</ul>
基本上,当我在第一部分的<a>
元素中时,我需要选择下面<ul>
元素的所有子元素。有没有办法在XSLT中执行此操作?
答案 0 :(得分:1)
假设您位于 a 元素上,则以下两个表达式中的任何一个都可以使用
<xsl:value-of select="../../following-sibling::ul[1]/p" />
<xsl:value-of select="ancestor::p[1]/following-sibling::ul[1]/p" />
第一个假设 a 在这种情况下是'大孩',而第二个在任何级别都使用 a ,但假定相关您要检查的“祖先”始终是 p 。
答案 1 :(得分:0)
理想情况下,您需要了解<p>
和<ul>
的父级。假设元素是<x>
,您可以使用祖先轴选择它,然后将路径追加到您想要的后代:
<xsl:copy-of select="ancestor::x/ul/*">
或者,如果是变量,您可以使用通配符:
<xsl:copy-of select="ancestor::*[3]/ul/*">