2012-03-16 33 views

答えて

4

文字を削除する場合は、2番目の引数として文字をリストし、3番目のtranslate(., ' ', '')などの空の文字列を並べ替えるtranslateを使用します。すべて削除空白で結果を得るために

<xsl:template match="sss"> 
    <xsl:copy> 
    <xsl:value-of select="translate(normalize-space(), ' ', '')"/> 
    </xsl:copy> 
</xsl:template> 
0

、標準のXPath translate()機能使用:

translate(., ' &#xA;&#xD;&#xC;&#9;', '') 

をそれはは全くnormalize-space()を使用する必要はありません。この空白の除去のために必要な

テンプレートは、単にこのです:

<xsl:template match="sss/text()"> 
    <xsl:value-of select="translate(., ' &#xA;&#xD;&#9;', '')"/> 
</xsl:template> 

XML文書が非sss要素が含まれている場合、これらがコピーされるように、完全な変換は "、また、アイデンティティのルールを含み現状のまま」:

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

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

<xsl:template match="sss/text()"> 
    <xsl:value-of select="translate(., ' &#xA;&#xD;&#xC;&#9;', '')"/> 
</xsl:template> 
</xsl:stylesheet> 
+0

#xCへの参照は、XML 1.1を使用している場合にのみうまく形成されていることに気づくはずです。 –

+0

@DavidCarlisle:良い観察 - 私は今朝も寝ていたに違いない:) –

関連する問題