2
使用XSLT,我試圖去除特定節點內的所有標籤,同時保留這些標籤之間的空白。XSLT:剝離標籤,保留空格
我給出這樣的XML:
<text>
<s id="s2"> The patient is a <p id="p22">56-year-old</p> <p id="p28">Caucasian</p> <p id="p30">male</p></s></text>
我想去掉所有的<小號>和< P的>標籤,這樣我只是有<文本>內的英語句子節點。
我試過了下面的模板,它成功地刪除了所有的標籤,但是如果沒有其他字符,它也會刪除<p>標籤之間的空格。例如,我最終會說:「患者是一位56歲的高級女警」
<xsl:template name="strip-tags">
<xsl:param name="text"/>
<xsl:choose>
<xsl:when test="contains($text, '<')">
<xsl:value-of select="substring-before($text, '<')"/>
<xsl:call-template name="strip-tags">
<xsl:with-param name="text" select="substring-after($text, '>')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
有什麼想法?謝謝!
啊,很高興知道!但即使這樣做,p標籤之間的空白也會被刪除。如果我用非空格字符替換XML中的空格,則會保留這些字符。 – embden
@embden你的樣式表中是否有'? –
您可能正在使用Microsoft XML解析器,該解析器默認情況下剝奪了空白。一旦消失,XSLT無法保存它。 –