28

XML ドキュメントのルート要素のタグ名を xslt 変数に割り当てることに興味があります。たとえば、ドキュメントが次のように見える場合 (DTD を除く):

<foo xmlns="http://.....">
    <bar>1</bar>
</foo>

そして、文字列 'foo' を xslt 変数に割り当てたいと思いました。それを参照する方法はありますか?

ありがとう、マット

4

4 に答える 4

27

最も外側の XML 要素の名前を取得したいと考えています。これは、次の XSL サンプルのように実行できます。

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:variable name="outermostElementName" select="name(/*)" />

  <xsl:template match="/">
    <xsl:value-of select="$outermostElementName"/>
  </xsl:template>
</xsl:stylesheet>

XPath 用語には若干の違いがあることに注意してください。

ツリーの最上位は、ルート ノード (1.0 用語) またはドキュメント ノード (2.0) です。これが「/」の意味です。これは要素ではありません。最も外側の要素 (および最も外側の要素の前後にあるコメントと処理命令) の親です。ルート ノードには名前がありません。

http://www.dpawson.co.uk/xsl/sect2/root.html#d9799e301を参照してください。

于 2008-12-15T15:36:49.487 に答える
2

理解した。パラメータ * を指定した関数 name() は foo を返します。

于 2008-12-15T15:35:53.497 に答える
0

あなたがしたいlocal-name()

于 2008-12-15T15:38:40.027 に答える