要素の値の空白を取り除きたい。xsltの要素の余分なスペースを取り除く方法
出典:
<sss>
HI:
HELLO:
HOW:
</sss>
出力:
<sss>HI:HELLO:HOW
私はこの
<xsl:strip-space elements="*"/>
を試してみましたが、それは、出力に影響を与えていません。
要素の値の空白を取り除きたい。xsltの要素の余分なスペースを取り除く方法
出典:
<sss>
HI:
HELLO:
HOW:
</sss>
出力:
<sss>HI:HELLO:HOW
私はこの
<xsl:strip-space elements="*"/>
を試してみましたが、それは、出力に影響を与えていません。
文字を削除する場合は、2番目の引数として文字をリストし、3番目のtranslate(., ' ', '')
などの空の文字列を並べ替えるtranslateを使用します。すべて削除空白で結果を得るために
<xsl:template match="sss">
<xsl:copy>
<xsl:value-of select="translate(normalize-space(), ' ', '')"/>
</xsl:copy>
</xsl:template>
、標準のXPath translate()
機能使用:
translate(., ' 

	', '')
をそれはは全くnormalize-space()
を使用する必要はありません。この空白の除去のために必要な
テンプレートは、単にこのです:
<xsl:template match="sss/text()">
<xsl:value-of select="translate(., ' 

	', '')"/>
</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(., ' 

	', '')"/>
</xsl:template>
</xsl:stylesheet>
#xCへの参照は、XML 1.1を使用している場合にのみうまく形成されていることに気づくはずです。 –
@DavidCarlisle:良い観察 - 私は今朝も寝ていたに違いない:) –
現在のXSLTの外観は? – FloppyDisk