Activer JavaScript pour consulter ce site.

Altova MobileTogether Designer

Lorsque l'événement est déclenché, l'action Apposer un nœud ajoute un ou plusieurs nouveaux nœuds en tant que premier ou dernier enfant (ensemble de nœuds) du nœud sélectionné par l'expression XPath pour le paramètre Apposer au nœud. Le nœud inséré peut être un nœud unique, une séquence de nœuds ou tout un fragment d'arborescence. Ces nœuds insérés sont construits à l'aide de la syntaxe de construction XML de XQuery. Tous les sept types de nœuds XML peuvent être construits en utilisant cette syntaxe XQuery : éléments, attributs, texte, document, commentaire, instruction de traitement et espace de nom.

MTDAppendNode01

Note:La différence entre Insérer un nœud et Apposer un nœud est que le premier insère le/s nœud/s avant le/s nœud/s sélectionné/s, alors que Apposer un nœud ajoute le nœud en tant que (premier ou dernier) nœud enfant du nœud sélectionné.

 

Emplacement du nœud ajouté

Le nouveau nœud est ajouté en tant que le premier ou le dernier nœud enfant du nœud retourné par l'expression XPath pour ce paramètre (Ajouter au nœud). Dans la capture d'écran ci-dessus, le nouveau nœud est ajouté en tant que les derniers nœuds enfants du nœud contextuel, l'élément Products (sélectionné avec l'expression XPath current[1]). Pour sélectionner si le nouveau nœud doit être ajouté en tant que le premier ou le dernier nœud enfant, sélectionner le bouton radio correspondant dans la définition de l'action.

 

Nouveaux nœuds

Des nouveaux nœuds peuvent être saisis en tant que constructeurs XML directs comme indiqué dans la capture d'écran ci-dessus:

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

 

Cela permet d'ajouter l'élément MyElement-01 après le dernier élément Product, comme indiqué dans la capture d'écran ci-dessous.

 

MTDAppendNode02

Vous pouvez également utiliser une expression de localisation XPath pour ajouter un nœud (et tous ses descendants) depuis une source de page. Par exemple :

$XML2/Row

 

 

Des générateurs de nœuds calculés par XQuery peuvent aussi être utilisés, par exemple :

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

attribute myatt{"value"} 

 

L'expression XPath ci-dessous produit la sortie montrée dans la capture d'écran ci-dessous, ajoutée en tant que les derniers nœuds enfants de l'élément Product, donc après le dernier nœud enfant actuel (le dernier nœud Product).

 

<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{}} 

MTDAppendNode03

 

Supprimer les nœuds ajoutés de leur emplacement original

Si le/s nœud/s ajouté/s sont obtenus à partir d'une des sources de page du projet, vous pouvez supprimer le nœud de leur emplacement original en sélectionnant la case à cocher Supprimer un nœud ajouté de leur emplacement actuel. Si de nouveaux nœuds sont générés directement, c'est à dire sans référence aux sources de page du projet, alors la sélection de cette option n'aura aucune conséquence sur les sources de page.

 

Un bon exemple de l'utilisation de l'option Supprimer un nœud ajouté de leur emplacement actuel est le tri des nœuds. En supposant que nous avons une arborescence présentant cette structure : $XML1/products/product/@name. Nous souhaitons trier les nœuds product sur la base de leurs valeurs @name. Nous pouvons procéder avec la définition Ajouter nœud/s affichée dans la capture d'écran ci-dessous.

MTDAppendNodeRemoveOriginal

Nous ajoutons les nouveaux nœuds en tant que le dernier enfant au nœud $XML1/products.

Les nouveaux nœuds sont générés avec l'expression XPath : for $i in $XML1/products/product order by $i/@name return $i. La clause order by trie la séquence des items product avant de les itérer.

L'option Supprimer un nœud ajouté de leur emplacement actuel supprime la séquence de produit non triée originale. Cela nous donne la séquence ordonnée qui a été ajoutée.

 

La variable $MT_TargetNode

Le nœud dans la définition Ajouter un nœud qui est ciblée en tant que le nœud dans lequel ajouter le nœud enfant, est enregistré automatiquement dans la variable intégrée $MT_TargetNode de MobileTogether Designer. Cette variable peut ensuite être utilisée dans la deuxième expression XPath de la définition, comme montré dans la capture d'écran ci-dessous.

MTDAppendNode04

La deuxième expression XPath utilise le nœud cible ($MT_TargetNode) pour trouver le dernier élément enfant du nœud cible puis utilise le nom de cet élément enfant pour construire le nom du nouvel élément.

element {concat("MyNew"name($MT_TargetNode/*[last()]))} {"Element Content"} 

 

Le résultat de l'action Ajouter un nœud définie ci-dessus (lorsque le nœud cible est $XML1/Products) est montré dans la capture d'écran ci-dessous.

MTDAppendNode05

 

© 2019 Altova GmbH