使用XSL 的解决方案:有没有简单的方法来防止寡妇?在 DOM 中制作奇怪的标签。
有没有办法让它不插入名称的元素?目前,如果我跑步
<xsl:apply-templates select="solution-headline" mode="widow-fix" />
它会插入
<solution-headline>Lorem ipsum<solution-headline/>
我希望它插入
<xsl:text>Lorem ipsum<xsl:text/>
使用XSL 的解决方案:有没有简单的方法来防止寡妇?在 DOM 中制作奇怪的标签。
有没有办法让它不插入名称的元素?目前,如果我跑步
<xsl:apply-templates select="solution-headline" mode="widow-fix" />
它会插入
<solution-headline>Lorem ipsum<solution-headline/>
我希望它插入
<xsl:text>Lorem ipsum<xsl:text/>
如果您只想要文本,那么最简单的方法是将寡妇修复模板应用于元素的文本节点子节点,solution-headline
而不是元素本身:
<xsl:apply-templates select="solution-headline/text()" mode="widow-fix" />
如果你总是希望寡妇修复只给你文本而不包括周围的元素,那么删除现有的模板
<xsl:template match="* | @*" mode="widow-fix">
<xsl:copy>
<xsl:apply-templates select="@* | node()" mode="widow-fix"/>
</xsl:copy>
</xsl:template>
现在,当您将寡妇修复模板应用于solution-headline
它时,它将使用默认模板,该模板基本上只是在没有的<xsl:apply-templates mode="widow-fix" />
情况下(即使用相同模式处理所有子节点),并且您将获得寡妇修复处理的所有后代文本节点模板。copy