XSLT-Funktionen

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

Startseite >  Anhänge > Informationen zu den Prozessoren > XSLT- und XPath/XQuery-Funktionen > Altova-Erweiterungsfunktionen >

XSLT-Funktionen

XSLT-Erweiterungsfunktionen können in XPath-Ausdrücken in einem XSLT-Kontext verwendet werden. In einem Nicht-XSLT-Kontext (z.B. in einem XQuery-Kontext) funktionieren sie nicht.

 

Anmerkung zur Benennung von Funktionen und zur Anwendbarkeit der Sprache

Altova-Erweiterungsfunktionen können in XPath/XQuery-Ausdrücken verwendet werden. Dadurch stehen neben den Funktionen in der Standardbibliothek der XPath-, XQuery- und XSLT-Funktionen zusätzliche Funktionen zur Verfügung. Die Altova-Erweiterungsfunktionen befinden sich im Altova-Erweiterungsfunktions-Namespace, http://www.altova.com/xslt-extensions und sind in diesem Abschnitt mit dem Präfix altova:, das als an diesen Namespace gebunden angenommen wird, gekennzeichnet. Beachten Sie, dass manche Funktionen in zukünftigen Versionen Ihres Produkts eventuell nicht mehr unterstützt werden oder dass sich das Verhalten einzelner Funktionen ändern kann. Um zu sehen, welche Altova-Erweiterungsfunktionen unterstützt werden, lesen Sie bitte die Dokumentation zur jeweiligen Release.

 

XPath-Funktionen (in XPath-Ausdrücken in XSLT verwendet):

XP1 XP2 XP3.1

XSLT-Funktionen (in XPath-Ausdrücken in XSLT verwendet):

Xslt1 XSLT2 XSLT3

XQuery-Funktionen (in XQuery-Ausdrücken in XQuery verwendet):

XQ1 XQ3.1

 

Standardfunktionen

Click to expand/collapsedistinct-nodes [altova:]

altova:distinct-nodes(node()*) als node()*     Xslt1 XSLT2 XSLT3

Erhält eine Gruppe von einem oder mehreren Nodes als Input und gibt dieselbe Gruppe ohne Nodes mit doppelt vorhandenen Werten zurück. Der Vergleich wird mittels der XPath/XQuery-Funktion fn:deep-equal durchgeführt.

altova:distinct-nodes(country) gibt alle Child country Nodes ohne diejenigen mit doppelt vorhandenen Werten zurück.

 

 

Click to expand/collapseevaluate [altova:]

altova:evaluate(XPathExpression as xs:string[, ValueOf$p1, ... ValueOf$pN])     Xslt1 XSLT2 XSLT3

Erhält einen XPath-Ausdruck als obligatorisches Argument, der als String übergeben wird, und gibt das Resultat des ausgewerteten Ausdrucks zurück. Beispiel: altova:evaluate('//Name[1]') gibt den Inhalt des ersten Name Elements im Dokument zurück. Beachten Sie, dass der Ausdruck //Name[1] durch Einschließen in einfache Anführungszeichen als String übergeben wird.

 

Die Funktion altova:evaluate kann zusätzliche (optionale) Argumente erhalten. Diese Argumente sind die Werte der einzelnen im Geltungsbereich befindlichen Variablen und haben die Namen p1, p2, p3... pN. Beachten Sie zur Verwendung die folgenden Punkte: (i) Die Variablennamen müssen die Form pX haben, wobei X eine Ganzzahl ist; (ii) die Argumente der Funktion altova:evaluate (siehe Signatur oben) liefern vom zweiten Argument an die Werte der Variablen,  wobei die Reihenfolge der Argumente der numerisch geordneten Variablensequenz entspricht: p1 bis pN. Das zweite Argument wird der Wert der Variablen p1, das dritte Argument der der Variablen p2, usw.; (iii) Die Werte der Variablen müssen vom Typ item* sein

hmtoggle_plus0        Beispiel

<xsl:variable name="xpath" select="'$p3, $p2, $p1'" />

<xsl:value-of select="altova:evaluate($xpath, 10, 20, 'hi')" />

gibt aus "hi 20 10"

 

Beachten Sie im obigen Beispiel folgende Punkte:

 

Das zweite Argument des Ausdrucks altova:evaluate ist der der Variablen $p1 zugewiesene Wert, das dritte Argument ist das der Variablen $p2 zugewiesene usw.
Beachten Sie, dass das vierte Argument der Funktion ein String-Wert ist. Als String-Wert wird dieser innerhalb von Anführungszeichen gesetzt.
Das select Attribut des Elements xs:variable liefert den XPath-Ausdruck. Da dieser Ausdruck den Typ xs:string, haben muss, wird er in einfache Anführungszeichen gesetzt.

 

 

<xsl:variable name="xpath" select="'$p1'" />
<xsl:value-of select="altova:evaluate($xpath, //Name[1])" />
Gibt den Wert des ersten Name Elements zurück.
 
<xsl:variable name="xpath" select="'$p1'" />
<xsl:value-of select="altova:evaluate($xpath, '//Name[1]')" />
Gibt "//Name[1]" aus

 

Die altova:evaluate() Erweiterungsfunktion ist in Situationen nützlich, in denen ein XPath-Ausdruck im XSLT-Stylesheet einen oder mehrere Teile enthält, die dynamisch ausgewertet werden müssen. Angenommen ein Benutzer gibt seinen Request für das Sortierkriterium ein und das Sortierkriterium ist im Attribut UserReq/@sortkey. gespeichert. Im Stylesheet könnten Sie den folgenden Ausdruck haben: <xsl:sort select="altova:evaluate(../UserReq/@sortkey)" order="ascending"/> Die altova:evaluate() Funktion liest das sortkey Attribut des UserReq Child-Elements des Parent des Kontext-Node. Angenommen der Wert des sortkey Attributs ist Price, dann wird von der altova:evaluate() Funktion Price zurückgegeben und wird zum Wert des select Attributs: <xsl:sort select="Price" order="ascending"/>. Wenn diese sort Anweisung im Kontext eines Elements namens Order vorkommt, dann werden die Order Elemente nach den Werten Ihrer Price Children sortiert. Alternativ dazu, wenn der Wert von @sortkey z.B. Date ist, werden die Order Elemente nach den Werten ihrer Date Children sortiert. Das Sortierkriterium für Order wird also zur Laufzeit aus dem sortkey Attribut ausgewählt. Diese hätte man mit einem Ausdruck wie dem folgenden nicht bewerkstelligen können:        <xsl:sort select="../UserReq/@sortkey" order="ascending"/>. Im oben gezeigten Beispiel wäre das Sortierkriterium das sortkey Attribut selbst, nicht Price oder Date (oder jeder beliebige andere Inhalt von sortkey)

 

Hinweis:

Der statische Kontext enthält Namespaces, Typen und Funktionen - aber keine Variablen - aus der aufrufenden Umgebung. Die Basis-URI und der Standard-Namespace werden vererbt.

 

Statische Variablen: <xsl:value-of select="$i3, $i2, $i1" />
Gibt die Werte von drei Variablen aus.
 
Dynamischer XPath-Ausdruck mit dynamischen Variablen:
<xsl:variable name="xpath" select="'$p3, $p2, $p1'" />
<xsl:value-of select="altova:evaluate($xpath, 10, 20, 30)" />
Gibt "30 20 10" aus
 
Dynamischer XPath-Ausdruck ohne dynamische Variable:
<xsl:variable name="xpath" select="'$p3, $p2, $p1'" />
<xsl:value-of select="altova:evaluate($xpath)" />
Gibt einen Fehler aus.: Es wurde keine Variable für $p3 definiert.

 

 

Click to expand/collapseencode-for-rtf [altova:]

altova:encode-for-rtf(input als xs:stringpreserveallwhitespace als xs:booleanpreservenewlines als xs:boolean) als xs:string     XSLT2 XSLT3

Konvertiert den Input-String in Code für RTF. Whitespaces und neue Zeilen werden gemäß dem für die entsprechenden Parameter definierten Booleschen Wert beibehalten.

 

 

 

[ Nach oben ]

 

 

XBRL-Funktionen

Altova XBRL-Funktionen können nur mit Editionen von Altova-Produkten verwendet werden, die XBRL unterstützen.

 

Click to expand/collapsexbrl-footnotes [altova:]

altova:xbrl-footnotes(node()) als node()*     XSLT2 XSLT3

Erhält einen Node als Input-Argument und gibt die durch den Input-Node referenzierte Gruppe der XBRL-Fußnoten-Nodes zurück.

 

 

Click to expand/collapsexbrl-labels [altova:]

altova:xbrl-labels(xs:QNamexs:string) als node()*     XSLT2 XSLT3

Erhält zwei Input-Argumente: einen Node-Namen und den Pfad der Taxonomiedatei, die den Node enthält. Die Funktion gibt die XBRL Labels zurück, die mit dem Input-Node verknüpft sind.

 

 

 

[ Nach oben ]

 


© 2019 Altova GmbH