Reemplazar nodos

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Acciones > Actualizar datos >

Reemplazar nodos

Cuando se desencadena la acción ocurre lo siguiente:

 

1.El conjunto de nodos especificado por la expresión XPath de Subnodos se elimina del nodo de destino (especificado en la opción Nodo de destino) si existe en él.
2.El conjunto de nodos especificado por la expresión XPath de Subnodos se copia desde un nodo de origen (especificado en la opción Elemento primario de los nodos de origen) al nodo de destino. El conjunto de nodos se puede anexar bien como primero o como último secundario del nodo de destino.

 

La expresión XPath de la opción Subnodos se evalúa por separado para origen y destino, en los respectivos contextos del nodo especificado como nodo de origen y el especificado como nodo de destino.

 
La acción Reemplazar nodos combina las acciones Borrar nodos y Anexar nodos.

 

Ejemplos

 

A continuación se muestran dos ejemplos que ilustran cómo funciona la acción Reemplazar nodos.

 

Reemplazo simple

Observe las dos estructuras XML del siguiente panel de fuentes de página.
 

$XML1/ArticleOriginal tiene un elemento secundario llamado Body.
$XML2/ArticleCopy tiene varios elementos secundarios llamados Header, Intro y Body, que aparecen en ese orden.

MTActionReplaceNodeEx01a

Puede reemplazar el elemento Body de ArticleCopy con el elemento Body de ArticleOriginal usando la acción Reemplazar nodo (imagen siguiente).

MTActionReplaceNodeEx01Action

La acción anexa a un nodo de destino llamado ArticleCopy un subnodo llamado Body como último secundario desde un nodo de origen llamado ArticleOriginal. La imagen siguiente muestra las fuentes de página durante una simulación después de ejecutar la acción. Observe que el elemento Body de ArticleCopy ha sido reemplazado por el elemento Body de ArticleOriginal.

MTActionReplaceNodeEx01Sim

Observe que Header e Intro permanecen intactos, pero Body ha sido reemplazado. Si ArticleCopy no tuviera ningún elemento Body, entonces se anexaría un elemento Body nuevo.

 

La expresión XPath de Body (especificada en la opción Subnodos) se evalúa respectivamente en los contextos de las expresiones XPath de Nodo de origen y Nodo de destino para (i) localizar el conjunto de nodos de origen que hay que copiar y (ii) localizar en qué conjunto de nodos hay que borrar y en cuál hay que copiar.

 

 

Reemplazar una estructura completa

La imagen siguiente muestra la configuración necesaria para anexar todo un conjunto de nodos de un nodo (origen) a otro (destino). Todos los elementos descendientes del nodo de origen $XML1/office/usa, junto con sus atributos, se anexan al nodo de destino $XML2/offices/office[@id="usa"].

MTActionReplaceNode

Esta es la secuencia exacta de acciones:

 

1.La expresión XPath de Subnodos *, @* localiza todos los elementos descendientes del nodo de destino $XML2/offices/office[@id="usa"]y los borra.
2.La expresión XPath de Subnodos *, @* localiza todos los elementos descendientes del nodo de origen $XML1/office/usa y los copia como un solo cuerpo al nodo de destino $XML2/offices/office[@id="usa"]. Al haber borrado previamente todos los elementos secundarios del nodo de destino, el nuevo subnodo reemplazará por completo a los descendientes anteriores del nodo de destino.
 

© 2019 Altova GmbH