2

xsltを使用して、xmlドキュメントの要素と属性の先頭と末尾のスペースをすべて削除する方法はありますか?

<Root>
  <a>string    </a>
  <b r="another   ">second    </b>
</Root>

期待される出力

<Root>
  <a>string</a>
  <b r="another">second</b>
</Root>

注:これはサンプルxmlであり、ソースxmlドキュメントには多くの要素と属性があります。

4

1 に答える 1

2

この関数を使用する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'
于 2012-08-14T11:28:23.997 に答える