FXSL (XSLT関数型プログラミング用のオープンソースライブラリ、完全にXSLTで記述)を使用すると、次のように記述できます。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="trim.xsl"/>
<xsl:output method="text"/>
<xsl:template match="/*/description">
'<xsl:call-template name="trim">
<xsl:with-param name="pStr" select="."/>
</xsl:call-template>'
</xsl:template>
</xsl:stylesheet>
この変換が提供されたXMLドキュメントに適用される場合:
<car>
<description> To get more information look at: www.example.com </description>
</car>
必要な正しい結果が生成されます。
'To get more information look at: www.example.com'
trim
テンプレートはどのように機能しますか?
左の先頭の空白をトリミングし、次に結果の文字列を反転して先頭の空白をトリミングし、最後に結果の文字列を反転します。
II。XPath 2.0ソリューション:
使用:
replace(replace(/*/description, '^\s*(.+?)\s*$', '$1'), '^ .*$', '')
XSLT-2.0ベースの検証は次のとおりです。
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
"<xsl:sequence
select="replace(replace(/*/description, '^\s*(.+?)\s*$', '$1'), '^ .*$', '')"/>"
</xsl:template>
</xsl:stylesheet>
この変換が提供されたXMLドキュメント(上記)に適用されると、XPath式が評価され、この評価の結果が出力にコピーされます。
"To get more information look at: www.example.com"