xsltを使用して、xmlドキュメントの要素と属性の先頭と末尾のスペースをすべて削除する方法はありますか?
<Root>
<a>string </a>
<b r="another ">second </b>
</Root>
期待される出力
<Root>
<a>string</a>
<b r="another">second</b>
</Root>
注:これはサンプルxmlであり、ソースxmlドキュメントには多くの要素と属性があります。
この関数を使用するnormalize-space()
と、先頭と末尾の空白文字がすべて削除された文字列になります。
ただし、中間の空白文字のグループを単一の空白文字に置き換えます。
最後に述べた効果が必要ない場合、1つの解決策はtrim
、FXSL 1.xのテンプレート関数(完全にXSLT 1.0で記述されたFXSL)を使用することです。
trim
テンプレート/関数の使用例を次に示します。
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="trim.xsl"/>
<!-- to be applied on trim.xml -->
<xsl:output method="text"/>
<xsl:template match="/">
'<xsl:call-template name="trim">
<xsl:with-param name="pStr" select="string(/*)"/>
</xsl:call-template>'
</xsl:template>
</xsl:stylesheet>
この変換が次のXMLドキュメントに適用される場合:
<someText>
This is some text
</someText>
必要な正しい結果が生成されます。
'This is some text'