fn:local-name
(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 5.)
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
Kategorie: Nodenamen und Identifier
Herkunft: XPath 1.0
Rückgabewert: Ein String xs:string; der lokale Anteil des QNames eines Nodes – mit anderen Worten, jener Teil des Bezeichners, der dem Doppelpunkt nach dem Präfix folgt.
Aufruf/Argumente:
fn:local-name($node-sequenz?)
$node-sequenz:
Optional. Argument der Funktion ist eine Knotensequenz, die in der Regel aus mindestens einem Knoten besteht. Der lokale Bezeichner dieses Nodes bzw. der des ersten Knotens der Knotensequenz wird von der Funktion zurückgegeben. Ist die Sequenz leer, so wird ein leerer String zurückgegeben. Ist das übergebene Argument kein Node bzw. keine Node-Sequenz, so wird ein Fehler gemeldet.
Verwendungszweck:
Auf einen Elementknoten angewendet gibt die Funktion local-name() den lokalen Teil des Elementbezeichners zurück. Lexikalisch muss der Rückgabewert folglich dem Typ xs:NCName entsprechen.
Im Fall eines übergebenen Elements <beispiel:test> wird daher der String "test" zurückgegeben, ebenso angewendet auf das präfixlose Element <test>. Analog wird bei Attributknoten der lokale Teil des Bezeichners hinter einem eventuellen Namensraum-Präfix zurückgegeben.
Wenn ein Argument zwar übergeben wird, dies aber zur leeren Sequenz resultiert, so gibt die Funktion den leeren String zurück. Wird hingegen gar kein Argument übergeben, so wird defaultmäßig der lokale Bezeichner des Kontextknotens zurückgegeben. Es erfolgt jedoch eine Fehlermeldung, wenn kein Kontextknoten existiert (err:XPDY0002) bzw. das Kontextitem kein Node ist (err:XPTY0004).
Auf einen Document-Node angewendet gibt die Funktion den leeren String zurück, da ein solcher Knoten per Definition namenlos ist. Dasselbe gilt bei der Anwendung auf Text- und Kommentarknoten.
Der lokale Bezeichner einer Processing-Instruction entspricht ihrem Target, mit anderen Worten dem Namen der adressierten Applikation.
Auf einen Namensraumknoten angewendet gibt die Funktion den Präfixstring zurück, der stellvertretend für den Namensraum steht, und den leeren String, falls es sich um den Default-Namensraum handelt.
Beispiele:
Beispiel 1 – Template für Elemente mit gleichem local-name:
<xsl:template match="*[fn:local-name()='beispiel']">
<!-- alle Elemente mit local-name 'beispiel' ungeachtet ihres Präfixes -->
</xsl:template>
Hier werden alle Elemente erfasst, deren lokaler Bezeichner dem String »beispiel« entspricht, also ohne Berücksichtigung des Präfixanteils ihres QNames. Dies kann nützlich sein, falls gleichnamige Elemente trotz verschiedener auftretender Präfixe identisch behandelt werden sollen, hebelt aber gleichzeitig ihre Unterscheidung nach Namensraum aus.
Beispiel 2 – Verarbeitungsaufruf für Elemente mit gleichem local-name:
<xsl:apply-templates select="*[fn:local-name()=beispiel]"/>
Dies ist der zum oberen Beispiel analoge Aufruf mit xsl:apply-templates – die Verwendung der Funktion ohne Argument innerhalb eines Predicate-Tests wendet diese auf alle getesteten Kontextknoten an.
Funktionsdefinition:
XPath 1.0:
local-name(node-set?) => string
XPath 2.0:
fn:local-name() as xs:string
fn:local-name($arg as node()?) as xs:string
<< zurück | vor >> |
Tipp der data2type-Redaktion: Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: |
Copyright © Galileo Press, Bonn 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT 2.0 & XPath 2.0 ― Das umfassende Handbuch" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
Galileo Press, Rheinwerkallee 4, 53227 Bonn