我正在尝试找到一种方法来将此转换重新编写到我不必在Xpath中使用ancestor::
轴的位置:
<xsl:template match="p[ancestor::p]">
<xsl:apply-templates select="node() except ppr" />
</xsl:template>
来源示例:
<root>
<p>
<p/>
<section>
<p/>
</section>
<ppr/>
<content/>
<p/>
<picture/>
</p>
</root>
期望的输出:
<root>
<p>
<section>
</section>
<ppr/>
<content/>
<picture/>
</p>
</root>
我无法使用显式Xpath或定位来抓取这些<p>
元素,因为它们的位置是随机的,并且在我的原始源文档中没有模式。
我试图不使用ancestor::
的原因是因为我正在使用的XSLT处理器正在花费30-50秒来评估该Xpath表达式。 我不希望这个问题是关于我正在使用哪个XSLT处理器或者我的设置的其他实现,而是关注手头的问题:有没有办法在我上面不使用ancestor::
变换吗
提前致谢。
答案 0 :(得分:3)
原来简单如下:
//p//p