これら2つの変数がある場合
<xsl:variable name="a" select="'Total'" />
<xsl:variable name="b" select="'500'" />
変数「a」の名前と変数「b」の内容を持つノードを作成したいと思います。XSLT 1.0 といくつかの EXSLT 拡張機能 (それらの間のノード セット) で xsltproc を使用する必要があるため、その一部を達成しました。
<xsl:template match="/">
<xsl:variable name="x" >
<<xsl:value-of select="$a" />>
<xsl:value-of select="$b" />
</<xsl:value-of select="$a" />>
</xsl:variable>
<xsl:value-of disable-output-escaping="yes" select="$x" />
</xsl:template>
実際にこれを出力します(今のところ空白は気にしません):
<?xml version="1.0"?>
<Total>
500
</Total>
しかし:さらに操作するために、変数「x」をノードセットとして使用したいと思います(もちろん、私の実際の例はもっと複雑です)。私がしたことは、それを(exslt.org/commonを使用して)ノードセットに変換することでした。これは機能しているようですが、コンテンツにアクセスすることはできません。
<xsl:variable name="nodes" select="common:node-set($x)" />
<xsl:value-of select="$nodes/Total" />
何にもつながりません。$nodes/Total は有効な XPATH 1.0 式である必要があるため、 ' 500 'を期待していました。明らかに私は何かが欠けています。ポイントは、ノード名を動的に作成し<...>
ても実際にはノードが作成されず、テキスト出力だけが作成されるということだと思います。ここで真のノード作成を実現するにはどうすればよいですか?