Xml 如何在XSLT中选择元素父元素后面的第一个元素?
假设我当前有以下代码:Xml 如何在XSLT中选择元素父元素后面的第一个元素?,xml,xslt,xpath,Xml,Xslt,Xpath,假设我当前有以下代码: <p> <greeting> <a name="hello">Hello!</a> </greeting> </p> <ul> <p>This paragraph needs to be selected</p> </ul> 你好 这一段需要选择 基本上,在第一部分的元素中,我需要选择下面元素的所有子元
<p>
<greeting>
<a name="hello">Hello!</a>
</greeting>
</p>
<ul>
<p>This paragraph needs to be selected</p>
</ul>
你好
这一段需要选择
基本上,在第一部分的
元素中,我需要选择下面
元素的所有子元素。在XSLT中有这样做的方法吗?理想情况下,您需要知道和
的父级。假设该元素是
,则可以使用祖先轴选择该元素,然后将路径附加到所需的后代:
<xsl:copy-of select="ancestor::x/ul/*">
或者,如果这是一个变量,则可以使用通配符:
<xsl:copy-of select="ancestor::*[3]/ul/*">
假设您位于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,严格地说,您的XML格式不好,因为它缺少一个根元素。我们可以假设您的示例只是一个片段,并且实际的XML格式良好(如果不是,使用XSLT会很麻烦!)@TimC,这是正确的,它只是一个示例。谢谢您的回答,看起来它会起作用(让我先测试一下)。我对跟随兄弟姐妹的做了很多事,但显然做了些错事。