0

このリンクでのxsltプログラミングのOliverBeckersの効率的な方法に関する質問。

このコードを使用すると、冗長なxslchooseメソッドを排除できることがわかっています。

concat(
substring(Str1,1 div Cond),
substring(Str2,1 div not(Cond))
)

ただし、ノードの有無を確認するために、「条件」で何を指定できますか?

指定できません

concat(
substring(Str1,1 div test="/node"),
substring(Str2,1 div not(test="/node"))
)

構文エラーがスローされます。

4

1 に答える 1

2

次の式を試してください ( nodeはテストするノードの名前です)。

<xsl:value-of select="concat(
   substring('Yes', 1 div not(not(/root/node))), 
   substring('No', 1 div not(/root/node)))"/>

またはまだ良い

<xsl:value-of select="concat(
   substring('Yes', 1 div boolean(/root/node)), 
   substring('No', 1 div not(/root/node)))"/>

この XML に適用すると、Yesが出力されます。

<root>
   <node>Test</node>
</root>

しかし、この XML に適用すると、Noが出力されます。

<root>
   <othernode>Test</othernode>
</root>
于 2012-11-05T14:32:11.017 に答える