2

使用XSL 的解决方案:有没有简单的方法来防止寡妇?在 DOM 中制作奇怪的标签。

有没有办法让它不插入名称的元素?目前,如果我跑步

<xsl:apply-templates select="solution-headline" mode="widow-fix" /> 

它会插入

<solution-headline>Lorem ipsum<solution-headline/> 

我希望它插入

<xsl:text>Lorem ipsum<xsl:text/>
4

1 回答 1

2

如果您只想要文本,那么最简单的方法是将寡妇修复模板应用于元素的文本节点子节点,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

于 2013-11-23T15:25:36.237 回答