我有这样一些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标记
谢啦!
举例说明不了规则。 在这里,您可以使用以下方法获得预期的结果*:
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:与
不匹配。