Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XSL删除部分文本并维护内部html标记_Html_Xml_Xslt - Fatal编程技术网

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

XSL删除部分文本并维护内部html标记,html,xml,xslt,Html,Xml,Xslt,我有这样一些XML: <div id="Testo" class="Paragrafo"> <p class="numero">Numero 1</p> <p class="rubrica"><em>(Prova)</em></p> <p class="Paragrafo"><span cl

我有这样一些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>

第一名

(Prova)

1。联合国,到期,特雷: 喝咖啡的人,喝咖啡的人,喝咖啡的人,喝咖啡的人,喝咖啡的人,不,不,喝咖啡的人!妈妈,妈妈,我的咖啡

2。联合国,到期,特雷: 喝咖啡的人,喝咖啡的人,喝咖啡的人,喝咖啡的人,喝咖啡的人,不,不,喝咖啡的人!妈妈,妈妈,我的咖啡

我想这样做:

<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>

第一名

(Prova)

联合国、到期日、到期日: 喝咖啡的人,喝咖啡的人,喝咖啡的人,喝咖啡的人,喝咖啡的人,不,不,喝咖啡的人!妈妈,妈妈,我的咖啡

联合国、到期日、到期日: 喝咖啡的人,喝咖啡的人,喝咖啡的人,喝咖啡的人,喝咖啡的人,不,不,喝咖啡的人!妈妈,妈妈,我的咖啡

这是一个问题。使用XSLT我想要相同的文本,但我必须在文本开始时删除数字和点。如果我使用子字符串,则会将每个html内部标记作为em strong ecc丢失,但仍保留文本。我想用内部文本维护html标记


谢谢

一个例子并没有阐明这一规则。在这里,您可以使用以下方法获得预期结果*:

XSLT1.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:
不匹配