Wie erhält man den Tagnamen des root-Elements in einem XML-Dokument w/ XSLT?

Ich bin daran interessiert, den Tag-Namen des root-Elements in einem XML-Dokument einer xslt-Variablen zuzuweisen. Wenn das Dokument beispielsweise wie (abzüglich der DTD) aussah:

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

und ich wollte die Zeichenfolge 'foo' einer xslt-Variablen zuweisen. Gibt es eine Möglichkeit, darauf zu verweisen?

Danke, Matt

Antwort auf "Wie erhält man den Tagnamen des root-Elements in einem XML-Dokument w/ XSLT? " 4 von antworten

hat es herausgefunden. Der Funktionsname() des Parameters * gibt foo zurück.

(2.0). Darauf bezieht sich "/" Kommentare und Verarbeitungsanweisungen Element). Der Stammknoten hat keinen Namen.

Siehe http://www.dpawson.co.uk/xsl/sect2/root.html#d9799e301

(1.0 Terminologie) oder Dokumentknoten Es ist kein Element: Es ist das übergeordnete

Ich denke, Sie möchten den Namen des äußersten XML-Elements abrufen. Dies kann wie im folgenden XSL-Beispiel geschehen:

<?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>

Bitte beachten Sie, dass es einen leichten Unterschied in der XPath-Terminologie gibt:

Die Spitze des Baumes ist ein Stammknoten die dem äußersten des äußersten Elements (und

sie wollen local-name()

Verwenden Sie die XPath -37-" Funktion.

Ein XPath-Ausdruck, um den Namen des obersten (nicht Root!)-Elements zu erhalten, lautet:

     #160;   name(/*)

Die Name() Funktion gibt den vollqualifizierten Namen des Knotens zurück, daher wird für ein Element <bar:foo/> the string "bar:foo" will be returned. die Zeichenfolge "bar:foo" zurückgegeben.

Falls nur der lokale Teil des Namens gewünscht wird (kein Präfix und ":"), sollte die XPath -Funktion local-name() function should be used. verwendet werden. " -50-"