提问者:小点点

XSL清除部分文本维护内部html标记


我有这样一些XML:

<div id="Testo" class="Paragrafo">

<p class="numero">Numero 1</p>

<p class="rubrica"><em>(Prova)</em></p>

<p class="Paragrafo"><span class="tt">1. Un, due, tre:
la Peppina la fa il caffè, fa il caffè con la <strong>cioccolata</strong>, la Peppina l’è malata, ma malata no, non è, sol per <em>prendere</em> il caffè! E la mamma, che lo sa, il <em>caffè</em> non glielo dà.</span></p>

<p class="Paragrafo"><span class="tt">2. Un, due, tre:
la Peppina la fa il caffè, fa il caffè con la <strong>cioccolata</strong>, la Peppina l’è malata, ma malata no, non è, sol per <em>prendere</em> il caffè! E la mamma, che lo sa, il <em>caffè</em> non glielo dà.</span></p>

</div>

我想这样做:

<div id="Testo" class="Paragrafo">

<p class="numero">Numero 1</p>

<p class="rubrica"><em>(Prova)</em></p>

<p class="Paragrafo"><span class="tt">Un, due, tre:
la Peppina la fa il caffè, fa il caffè con la <strong>cioccolata</strong>, la Peppina l’è malata, ma malata no, non è, sol per <em>prendere</em> il caffè! E la mamma, che lo sa, il <em>caffè</em> non glielo dà.</span></p>

<p class="Paragrafo"><span class="tt">Un, due, tre:
la Peppina la fa il caffè, fa il caffè con la <strong>cioccolata</strong>, la Peppina l’è malata, ma malata no, non è, sol per <em>prendere</em> il caffè! E la mamma, che lo sa, il <em>caffè</em> non glielo dà.</span></p>

</div>

问题来了。 使用XSLT,我想要相同的文本,但我必须删除数字和位置在乞讨的文本。 如果我使用substring,丢失每个html内部标记作为em strong ecc,但文本保留。 我想用内部文本维护html标记

谢啦!


共1个答案

匿名用户

举例说明不了规则。 在这里,您可以使用以下方法获得预期的结果*:

XSLT 1.0

<xsl:stylesheet version="1.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="span[@class='tt']/text()[1]">
    <xsl:value-of select="substring-after(., '. ')"/>
</xsl:template>

</xsl:stylesheet>

这是否适合你所有的案子还不清楚。

(*)如果您将输入修复为格式正确的XML:不匹配。

相关问题