Xslt 如何修复一些损坏的标签

Xslt 如何修复一些损坏的标签,xslt,xslt-1.0,xslt-2.0,Xslt,Xslt 1.0,Xslt 2.0,我的输入中有一些损坏的标记,我想在xslt中修复它们。 我已经搜索和尝试了不同的东西,但我似乎不明白 输入: 我的内容中有一些文本断开的标签,这真的很烦人 期望输出: 我的内容中有一些文本断开的标签,这真的很烦人 有人能帮我找到正确的方向吗 以下内容适用于您的示例,但对于其他情况可能不够通用 XSLT2.0 <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xs

我的输入中有一些损坏的标记,我想在xslt中修复它们。 我已经搜索和尝试了不同的东西,但我似乎不明白

输入:

我的内容中有一些文本断开的标签,这真的很烦人

期望输出:

我的内容中有一些文本断开的标签,这真的很烦人


有人能帮我找到正确的方向吗

以下内容适用于您的示例,但对于其他情况可能不够通用

XSLT2.0

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>

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

<xsl:template match="p">
    <xsl:copy>
        <xsl:for-each-group select="node()" group-adjacent="string(@class)">
            <xsl:choose>
                <xsl:when test="current-grouping-key()">
                    <span class="{current-grouping-key()}"> 
                        <xsl:apply-templates select="current-group()/node()"/>
                    </span>
            </xsl:when>
            <xsl:otherwise>
                <xsl:apply-templates select="current-group()"/>
            </xsl:otherwise>  
        </xsl:choose>
    </xsl:for-each-group>
    </xsl:copy>
</xsl:template>

</xsl:stylesheet>

谢谢!这对我有用。就像你说的,有点复杂,因为span元素嵌套在其他内联元素中(粗体、强调等),但我将分组放在一个单独的模板中,我在所有这些情况下都会调用这个模板。这对我现在的情况有效,但我不知道这样做是否正确。