• 締切済み

XSLTでtest.xmlファイルのccc要素の値を取得する場合は以下

XSLTでtest.xmlファイルのccc要素の値を取得する場合は以下(1)、(2)のようにやればいいのですが、(2)の箇所のパス(testを)動的(可変)にすることはできるのでしょうか? (1)document関数によりxmlファイルを変数に格納  <xsl:variable name="aaa" select="document('test.xml')"/> (2)上記変数からパスを指定して値を取得  <xsl:variable name="bbb" select="$aaa/test/ccc"/> test.xml <test> <ccc>bbb</ccc> </test> 例)以下は間違ってると思いますがパスに変数を使用して値を取得することは可能でしょうか?   <xsl:variable name="ccc" select="'test'"/> // 変数cccにtestという文字列を格納   <xsl:variable name="bbb" select="$aaa/$ccc/ccc"/> //test/cccがパスのつもり

みんなの回答

回答No.2

<xsl:variable name="bbb" select="$aaa/*[name() = $ccc]/ccc"/> で、取得できませんか? ちなみに変数cccに格納されているがエレメント名の場合のみになります。

回答No.1

標準のXSLT 1.0の関数には文字列をXPathとして評価する関数はないと思う。 要素名や属性名だけなら、式が凄く長くなるのを飲めばそう難しくはない。 http://cid-b89cb784f5346675.office.live.com/browse.aspx/TestCase/Q6085010?uc=2 #XSLT 2.0対応している環境がどれだけあるやら(.NETは対応しないことを表明)とは思うものの、これ使えるのかなぁ…? http://www.w3.org/TR/xpath-functions/#func-collection

関連するQ&A