Insérer un nœud

www.altova.com Imprimer cette rubrique Page précédente Un niveau supérieur Page suivante

Accueil >  Actions > Mettre à jour les données >

Insérer un nœud

Lorsque l'événement est déclenché, l'action Insérer le/s nœud/s insère un ou plusieurs nœuds avant un nœud sélectionné par l'expression XPath pour les paramètres Insérer avant le 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.

MTDInsertNode01

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

 

Emplacement du nœud inséré

Le nouveau nœud est inséré avant que le nœud retourné par l'expression XPath pour ce paramètre (Insérer avant nœud). Dans la capture d'écran ci-dessus, le nouveau nœud est inséré avant le premier élément Product (sélectionné avec l'expression XPath Product[1]). Le nœud contextuel est le parent de Product, un nœud nommé Products. Si le prédicat [1] n'est pas utilisé, tous les enfants Product de Products seront retournés par l'expression XPath et le nouveau nœud sera inséré avant chaque élément Product.

 

Nouveaux nœuds

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

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

 

Cela insère l'élément MyElement-01 avant le premier élément Product, comme dans la capture d'écran ci-dessous.

MTDInsertNode02

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

$XML2/Row

 

 

Des constructeurs 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, insérée au-dessus du premier élément 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{}} 

MTDInsertNode03

 

Supprimer les nœuds insérés de leurs emplacements originaux

Si les nœuds insérés sont obtenus à partir de l'une des sources de page du projet, vous pouvez supprimer les supprimer de leur emplacement d'origine en cochant la case Supprimer un nœud de son emplacement actuel. Si de nouveaux nœuds sont construits directement, donc sans référence aux sources de page du projet, la sélection de cette option n'aura pas de conséquences sur les sources de page.

 

La variable $MT_TargetNode

Le nœud dans la définition Insérer un nœud qui est ciblée en tant que le nœud avant lequel insérer 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 en tant que la deuxième expression XPath de la définition, tel que montré dans la capture d'écran ci-dessous.

MTDInsertNode04

La deuxième expression XPath qui crée le nouveau nœud en utilisant le même nom que le nœud cible ($MT_TargetNode) en tant que partie du nom du nouveau nœud.

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

 

Le résultat de l'action Insérer le/s nœud(s) définie ci-dessus est montré dans la capture d'écran ci-dessous.

MTDInsertNode05

 


© 2019 Altova GmbH