2

次のコード行が、xslt 1.0を使用して段落要素のテキストノードのピリオドとコンマを削除する正当な方法ではない理由を誰かに教えてもらえますか?これが私が現在持っているテンプレートです:

<xsl:template match="tei:p">
    <p id="{@xml:id}" class="plaoulparagraph" style="margin-left: 3em;"><xsl:apply-templates select="./translate(current(), '.,', '')"/></p>
</xsl:template>

これを実行しようとすると、現在、エディターからエラーが発生します。

4

3 に答える 3

2
<xsl:apply-templates select="./translate(current(), '.,', '')"/>

XSLT 1.0および2.0では、のselect属性の式はxsl:apply-templatesノードセットに評価される必要があります

上記の命令のselect属性は、XPath 1.0では構文的に無効です。XPath1.0では、/演算子のRHSとして関数呼び出しを行うことが許可されておらず(これを指定してくれた@MichaelKayに感謝します)、XPath2.0では文字列に評価されます。 、ノードセットではありません-これがエラーの原因です。

あなたはこのようなことをしたいです

<xsl:template match="tei:p//text()">
 <xsl:value-of select="translate(., '.,', '')"/>
</xsl:template>

上記の引用された命令を次のように置き換えます。

 <xsl:apply-templates/>
于 2012-06-23T21:01:54.780 に答える
0

これを使って

<p class="plaoulparagraph" style="margin-left: 3em;"><xsl:value-of select="translate(current(), '.,', '')"/></p>
于 2012-06-23T20:26:58.677 に答える
0

数字のコンマを扱っている場合は、次のように翻訳できます。

<xsl:variable name="string_value">
   <xsl:value-of select="'123,456,789.01'"/>
</xsl:variable>

<Number>
    <xsl:value-of select="number(translate($string_value,',',''))"/>
<Number>
于 2019-08-12T19:10:01.493 に答える