我有这个XSLT 2.0模板:
<xsl:template match="para[
not(ancestor::p)
and not(ancestor::div)
and not(ancestor::paragraph)
]">
<p class="para">
<xsl:apply-templates/>
</p>
</xsl:template>
它可以执行我需要它执行的操作:它会阻止<p>
中的HTML <p>
。但它是冗长的,我想有一种更简洁的方式来编写它。
有没有更好的方法来编写多个祖先测试?我尝试了一个工会..当然没用。
答案 0 :(得分:2)
<xsl:template match="para[not(ancestor::p|ancestor::div|ancestor::paragraph)]">
<p class="para">
<xsl:apply-templates/>
</p>
</xsl:template>
可选地
<xsl:template match="para">
<p class="para">
<xsl:apply-templates/>
</p>
</xsl:template>
<xsl:template match="para[ancestor::p|ancestor::div|ancestor::paragraph]" />
<!-- or whatever you want to do in that case, <xsl:apply-templates/> maybe -->