Node(s) einfügen

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

Startseite >  Aktionen > Daten aktualisieren >

Node(s) einfügen

Die Aktion "Node(s) einfügen" fügt einen oder mehrere Nodes vor dem/den vom XPath-Ausdruck für die Einstellung Vor Node einfügen ausgewählten Node(s) ein. Dabei kann es sich um einen einzelnen Node, eine Sequenz von Nodes oder ein gesamtes Strukturfragment handeln. Diese eingefügten Nodes werden mit Hilfe der XML-Konstruktorsyntax von XQuery erstellt. Mit der XQuery-Syntax können alle sieben XML-Nodearten erstellt werden: Elemente, Attribute, Text, Dokument, Comment, Processing Instruction und Namespace.

MTDInsertNode01

Anmerkung:Der Unterschied zwischen Node(s) einfügen und Node(s) anhängen ist, dass der/die Node(s) mit Node(s) einfügen vor dem/den ausgewählten Node(s) hinzugefügt wird/werden, während der/die Node(s) mit Node(s) anhängen) als (erster oder letzter) Child-Node des/der ausgewählten Node(s) hinzugefügt wird/werden.

 

Position des/der eingefügten Node(s)

Der/die neue(n) Node(s) werden vor dem/den vom XPath-Ausdruck für diese Einstellung (Vor Node einfügen) zurückgegebenen Node(s) eingefügt. In der Abbildung oben werden die neuen Nodes vor dem ersten Product-Element (das mit dem XPath-Ausdruck Product[1] ausgewählt wird) eingefügt. Der Kontext-Node ist der Parent von Product, ein Node namens Products. Wenn das Prädikat [1] nicht verwendet wird, werden vom XPath-Ausdruck alle Product-Children von Products zurückgegeben und der/die neue(n) Node(s) wird/werden vor den einzelnen Product-Elementen eingefügt.

 

Neue Nodes

Neue Nodes können wie in der Abbildung oben als direkte XML-Konstruktoren eingegeben werden:

<MyElement-01 myatt="value">Element Content</MyElement-01>

 

Damit wird das Element MyElement-01, wie in der Abbildung unten gezeigt, vor dem ersten Product Element eingefügt.

MTDInsertNode02

Sie können auch einen XPath Locator-Ausdruck verwenden, um eine Node (und alle seine Nachfahren) aus einer Seitenquelle auf der Seite einzufügen. Beispiel:

$XML2/Row

 

 

Auch die XQuery-Konstruktoren für berechnete Nodes können verwendet werden. Beispiel:

element MyElement-01 {xs:string("Element Content")}

attribute myatt{"value"} 

 

Der XPath-Ausdruck unten erzeugt das in der Abbildung unten gezeigte Ergebnis, das oberhalb des ersten Product-Elements eingefügt wird.

 

<MyElement-01 myatt="value">Element Content</MyElement-01>,

element MyElement-02 {"Element Content"},

element MyElement-03 {element MyElement-04 {"Element Content"}},

element MyElement-05{attribute myatt{"value"}, element MyElement-06{}} 

MTDInsertNode03

 

Entfernen eingefügter Nodes von ihrer ursprünglichen Stelle

Wenn der/die eingefügten Node(s) aus einer der Seitenquellen des Projekts stammen, können Sie den/die Node(s) von der Originalposition löschen, indem Sie das Kontrollkästchen eingefügte(n) Node(s) von der aktuellen Stelle entfernen aktivieren. Wenn neue Nodes direkt erstellt werden - also ohne Referenz auf die Seitenquellen des Projekts - so hat das Aktivieren dieser Option keine Auswirkung auf die Seitenquellen.

 

Die Variable $MT_TargetNode

Der Node in der Node(s) einfügen-Definition, vor dem Child Node(s) eingefügt werden sollen, wird automatisch in der vordefinierten MobileTogether Designer-Variablen $MT_TargetNode. gespeichert. Diese Variable kann anschließend, wie in der Abbildung unten gezeigt, im zweiten XPath-Ausdruck der Definition verwendet werden.

MTDInsertNode04

Der zweite XPath-Ausdruck, der den neuen Node mit demselben Namen wie dem des Ziel-Node ($MT_TargetNode) als Teil des neuen Node-Namens erstellt.

element {concat("MyNew"name($MT_TargetNode))} {"Element Content"} 

 

Das Ergebnis der oben definierten Aktion "Node(s) einfügen" sehen Sie in der Abbildung unten.

MTDInsertNode05

 


© 2019 Altova GmbH