gpt4 book ai didi

xslt - XSL : Is there an easy way to prevent widows?

转载 作者:行者123 更新时间:2023-12-04 02:42:07 25 4
gpt4 key购买 nike

我希望打电话..

<xsl:call-template name="widow-fix">
<with-param name="text" select="text"></with-param>
</xsl:call-template>

然后它会在文本中查找最后一个 空格 并在完成后将其替换为 #160;


应该可以支持

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>

请使用不同的字符,如#来回答/证明,这样我测试时的结果就是

Lorem ipsum dolor sit amet, consectetur adipiscing#elit.

<p>Lorem ipsum dolor sit amet, consectetur adipiscing#elit.</p>

最佳答案

您只需替换每个文本节点中的最后一个空格:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">


<xsl:template match="p | text()">
<xsl:apply-templates select="." mode="widow-fix"/>
</xsl:template>


<xsl:template match="* | @*">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>


<xsl:template match="* | @*" mode="widow-fix">
<xsl:copy>
<xsl:apply-templates select="@* | node()" mode="widow-fix"/>
</xsl:copy>
</xsl:template>


<xsl:template match="text()[contains(., ' ')]" mode="widow-fix">
<xsl:call-template name="text">
<xsl:with-param name="text" select="."/>
</xsl:call-template>
</xsl:template>


<xsl:template name="text">
<xsl:param name="text"/>

<xsl:variable name="substring-before" select="substring-before($text, ' ')"/>
<xsl:variable name="substring-after" select="substring-after($text, ' ')"/>

<xsl:choose>
<xsl:when test="contains($substring-after, ' ')">
<xsl:value-of select="$substring-before"/>
<xsl:text> </xsl:text>

<xsl:call-template name="text">
<xsl:with-param name="text" select="$substring-after"/>
</xsl:call-template>
</xsl:when>

<xsl:otherwise>
<xsl:value-of select="$substring-before"/>
<!--<xsl:text>&#160;</xsl:text>-->
<xsl:text>#</xsl:text>
<xsl:value-of select="$substring-after"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>


</xsl:stylesheet>

mode="widow-fix"可以处理保留封闭标记的文本节点和段落。

我用这样的文档作为测试源

<book>
<p>Highly random content</p>
in this book
</book>

转换为以下内容

<book>
<p>Highly random#content</p>
in this#book
</book>

关于xslt - XSL : Is there an easy way to prevent widows?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19694667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com