xslt | xpath functions (XPath-Funktionen)

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Funktionen > Referenz Funktionsbibliothek >

xslt | xpath functions (XPath-Funktionen)

Die Funktionen in der XPath-Funktionsbibliothek sind XPath 1.0 Nodeset-Funktionen. Jede dieser Funktionen erhält einen Node oder ein Nodeset als Kontext und gibt Informationen über diesen Node oder dieses Nodeset zurück. Diese Funktionen haben normalerweise:

 

einen Kontext-Node (in der Abbildung unten ist der Kontext-Node für die lang Funktion das Element "Language" des Quellschemas).
ein Input-Argument (in der Abbildung unten ist das Input-Argument für die lang Funktion die String-Konstante en). Die Funktionen last und position erhalten kein Argument.

FXxpath10

 

lang

Die lang Funktion erhält ein String-Argument, das einen Sprachcode definiert (wie z.B. en). Die Funktion gibt je nachdem, ob der Kontext-Node ein xml:lang Attribut mit einem Wert hat, der mit dem Argument der Funktion übereinstimmt, entweder true oder false zurück. Beachten Sie in der Abbildung oben bitte Folgendes:

 

1.Das Language Element im Quellschema hat ein xml:lang Attribut.
2.Language Nodes werden gefiltert, sodass nur diejenigen Language Nodes mit dem xml:lang Wert en verarbeitet werden (der Filtertest ist in der equal Funktion definiert).
3.Der Language Node ist der Kontext-Node an der Stelle, an der im Ausgabedokument ein en Element erstellt wird.
4.Der Ausgabewert der lang Funktion (true oder false) wird an den en/@exists Attribut-Node der Ausgabe gesendet. Das Argument der Funktion wird durch die String-Konstante en bereitgestellt. Anschließend überprüft die lang Funktion, ob der Kontext-Node an dieser Stelle (dem Language Element) ein xml:lang Attribut mit dem Wert en (dem Argument der Funktion) hat. Falls ja, wird true zurückgegeben, andernfalls false.

 

last, position

Die Funktionen last und position erhalten kein Argument. Die last Funktion gibt die Position des letzten Node im Kontext-Nodeset zurück. Die position Funktion gibt die Position des aktuellen Node im gerade verarbeiteten Nodeset zurück.

 

Das Kontext-Nodeset bei den Nodes, an die die Funktionen gerichtet sind, ist das Nodeset, auf das die Funktionen angewendet werden. In der Abbildung unten ist das Nodeset von Language Elementen das Kontext-Nodeset für die Funktionen last und position.

FXxpath10last

Im Beispiel oben gibt die last die Position des letzten Node des Kontext-Nodeset (des Nodeset der Language Elemente) als den Wert des number Attributs zurück.Dieser Wert entspricht auch der Größe des Nodeset, da er angibt, wie viele Nodes das Nodeset enthält.

 

Die position Funktion gibt die Position des gerade verarbeiteten Language Node zurück. Für jeden Language Element-Node wird die Position innerhalb des Nodeset  der Langauge Elemente im language/@position Attribute-Node ausgegeben.

 

name, local-name, namespace-uri

Diese Funktionen werden alle auf dieselbe Art verwendet. Sie geben den Namen, den lokalen Namen bzw. die Namespace URI des Input-Node zurück. In der Abbildung unten sehen Sie, wie diese Funktionen verwendet werden. Beachten Sie, dass kein Kontext-Node definiert ist.

 

Die name-Funktion gibt den Namen des Language Node zurück und gibt diesen an das language/@elementname Attribut aus. Wenn das Argument einer dieser Funktionen ein Nodeset anstelle eines einzelnen Node ist, wird der Name (bzw. der lokale Name oder die Namespace URI) des ersten Node im Nodeset zurückgegeben.

FXxpath10name

Die name Funktion gibt den QName des Node zurück; die local-name Funktion gibt den lokalen Teil des Names des QName zurück. Wenn der QName eines Node z.B. altova:MyNode ist, dann ist MyNode der lokale Name.

 

Die Namespace URI ist die URI des Namespace, dem der Node angehört. Das Präfix altova: kann z.B. so deklariert werden, dass es der folgenden Namespace URI zugeordnet wird: xmlns:altova="http://www.altova.com/namespaces".

 

 

Anmerkung:Weitere XPath 1.0 Funktionen finden Sie auch in der "Core" Funktionsbibliothek.

 


© 2019 Altova GmbH