Altova MapForce 2024 Professional Edition

Gibt die Anzahl der Datenelemente innerhalb der gerade verarbeiteten Sequenz von Datenelementen zurück. Beachten Sie, dass die Sequenz der Datenelemente durch den aktuellen Mapping-Kontext bestimmt wird, wie im Beispiel unten beschrieben.

mf-func-xpath2-last

 

Sprachen

XQuery, XSLT 2.0, XSLT 3.0..

 

Beispiel

Angenommen, Sie haben die folgende XML-Quelldatei:

 

<Articles>
  <Article>      
    <Name>T-Shirt</Name>
    <SinglePrice>25</SinglePrice>
  </Article>
  <Article>      
    <Name>Socks</Name>
    <SinglePrice>2.30</SinglePrice>
  </Article>
  <Article>      
    <Name>Jacket</Name>
    <SinglePrice>57.50</SinglePrice>
  </Article>
</Articles>

 

Es sollen Daten in eine XML-Datei mit einem anderen Schema kopiert werden. Außerdem muss die Anzahl aller Datenelemente in der XML-Zieldatei gespeichert werden. Dies lässt sich mit einem Mapping wie dem unten gezeigten, ermitteln:

mf-func-xpath2-last-example

Im Beispiel unten gibt die Funktion last die Position des letzten Node im aktuellen Parent-Kontext zurück und befüllt das Attribut count mit dem Wert 3.

 

<items count="3">
  <item>T-Shirt</item>
  <item>Pants</item>
  <item>Jacket</item>
</items>

 

Beachten Sie, dass der Wert 3 die Position des letzen Datenelements (also die Anzahl aller Datenelemente) in dem durch die Verbindung zwischen Article und items erstellten Mapping-Kontext ist. Wäre diese Verbindung nicht vorhanden, würden dennoch Datenelemente in die Zielkomponente kopiert werden, doch würde die Funktion last fälschlicherweise den Wert 1 zurückgeben, da sie keinen Parent-Kontext hätte, über den sie iterieren kann. (Genauer gesagt, würde die Funktion den impliziten zwischen den Root-Elementen der beiden Komponenten erstellten Standardkontext verwenden, der eine Sequenz von 1- und nicht, wie erwartet 3 - Datenelementen erzeugt).

 

Im Allgemeinen empfiehlt es sich, anstelle der last-Funktion, die count-Funktion aus der core-Bibliothek zu verwenden, da die count-Funktion ein parent-context-Argument hat, mit Hilfe dessen Sie den Mapping-Kontext explizit ändern können.

© 2017-2023 Altova GmbH