Remplacer 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 >

Remplacer un nœud

Lorsque l'action est déclenchée,

 

1.L'ensemble de nœuds spécifiés par l'expression XPath Sous-nœuds est supprimé depuis un nœud cible (spécifié dans le paramètre Parent de nœud source), le cas échéant.
2.L'ensemble de nœuds spécifiés par l'expression XPath Sous-nœuds est copié depuis un nœud source (spécifié dans le paramètre Parent de nœud source), vers le nœud cible. L'ensemble de nœud peut être apposé soit en tant que premier enfant ou dernier enfant du nœud cible

 

L'expression XPath du paramètre Sous-nœud est évaluée séparément pour la source et la cible : dans le contexte, respectivement, du nœud spécifié en tant que le nœud source et du nœud spécifié en tant que nœud cible.

 

L'action Remplacer le nœud est une combinaison de deux actions : Supprimer le/s nœud/s et Apposer le/s nœud/s.

 

Exemples

Ci-dessous, vous trouverez deux exemples qui démontrent comment fonctionne l'action Remplacer le nœud.

 

Remplacement simple

Considérez la structure des deux arborescences XML affichées dans le volet de Sources de page affichées ci-dessous.

 

$XML1/ArticleOriginal a un élément enfant nommé Body.
$XML2/ArticleCopy a des éléments enfant nommés Header, Intro, et Body, dans cet ordre

MTActionReplaceNodeEx01a

Nous pouvons remplacer l'élément Body de ArticleCopy avec l'élément d'ArticeOriginal en utilisant l'action Remplacer le nœud comme dans la capture d'écran ci-dessous.

MTActionReplaceNodeEx01Action

L'action apposer un sous-nœud nommé Body a au moins un dernier enfant provenant d'un nœud de source nommé ArticleOriginal vers une cible nommée ArticleCopy. La capture d'écran ci-dessous montre les sources de pages pendant une simulation, après que l'action ait été exécutée. Veuillez noter que l'élément Body de ArticleCopy a été remplacé par l'élément Body de ArticleOriginal.

MTActionReplaceNodeEx01Sim

Veuillez noter que Header et Intro n'ont pas été touchés, mais que Body a été remplacé. Si ArticleCopy n'avait pas eu d'élément Body, un nouvel élément Body aurait été ajouté.

L'expression XPath Body (spécifiée dans le paramètre Sous-nœud) est évaluée dans le contexte du Nœud de source et de l'expression XPath Nœud cible, respectivement, afin de (i) situer l'ensemble de nœud de source à copier, et (ii) situer le nœud à partir duquel supprimer et dans lequel apposer.

 

 

Remplacement d'une sous-arborescence complète

La capture d'écran ci-dessous montre les paramètres nécessaires pour apposer une ensemble de nœud complet depuis un nœud de (source) vers un autre nœud (cible). Tous les éléments descendants du nœud source $XML1/office/usa, avec leurs attributs, sont apposé au nœud cible $XML2/offices/office[@id="usa"].

MTActionReplaceNode

La séquence exacte des actions est la suivante :

 

1.L'expression XPath Sous-nœud *, @* situe tous les éléments descendants du nœud cible $XML2/offices/office[@id="usa"], et les supprime.
2.L'expression XPath Sous-nœud *, @* situe tous les éléments descendants du nœud cible $XML1/office/usa, et les copie en tant qu'un seul ensemble de nœud dans le nœud cible $XML2/offices/office[@id="usa"]. Puisque tous les éléments enfants du nœud cible ont été supprimés, le nouveau sous-nœud remplacera complètement les descendants précédents du nœud cible.

 


© 2019 Altova GmbH