In XSLT gibt es die
<xsl:value-of select="expression"/>
um den Wert eines Elements zu erhalten, aber gibt es etwas, um den Tag-Namen des Elements auszuwählen?
In einer Situation wie dieser:
<person>
<!-- required stuff -->
<name>Robert</name>
<!-- optional stuff, free form for future extension.
Using XMLSchema's xsd:any -->
<profession>programmer</profession>
<hobby>photography</hobby>
</person>
<xsl:for-each select="person">
<xsl:tag-of select="."/> : <xsl:value-of select="."/>
</xsl:for-each>
So erhalten Sie eine Ausgabe:
name : Robert profession : programmer hobby : photography
Natürlich wird das obige XSLT da nicht kompiliert
<xsl:tag-of select="expression"/>
existiert nicht. Aber wie könnte das gemacht werden?
Antworten:
Dadurch erhalten Sie den aktuellen Elementnamen (Tag-Name).
OP-Edit: Dies reicht auch aus:
quelle
Niemand hat auf den subtilen Unterschied in der Semantik der Funktionen
name()
und hingewiesenlocal-name()
.name(someNode)
Gibt den vollständigen Namen des Knotens zurück, einschließlich Präfix und Doppelpunkt, falls der Knoten ein Element oder ein Attribut ist.local-name(someNode)
Gibt nur den lokalen Namen des Knotens zurück, der das Präfix und den Doppelpunkt nicht enthält, falls der Knoten ein Element oder ein Attribut ist.Daher muss in Situationen, in denen ein Name zu zwei verschiedenen Namespaces gehören kann, die
name()
Funktion verwendet werden, damit diese Namen noch unterschieden werden können.Übrigens ist es möglich, beide Funktionen ohne Argument anzugeben :
name()
ist eine Abkürzung fürname(.)
local-name()
ist eine Abkürzung fürlocal-name(.)
Denken Sie schließlich daran, dass nicht nur Elemente und Attribute Namen haben, sondern dass diese beiden Funktionen auch für PIs verwendet werden können und dass diese identisch sind.
quelle
quelle
Für Interessierte gibt es keine:
Sie können das Tag / Element jedoch neu erstellen, indem Sie folgende Schritte ausführen:
Dies ist nützlich in einer xslt-Vorlage, die beispielsweise die Formatierung von Datenwerten für viele verschiedene Elemente übernimmt. Wenn Sie den Namen des Elements, an dem gearbeitet wird, nicht kennen und dennoch dasselbe Element ausgeben und den Wert bei Bedarf ändern können.
quelle
quelle