Foros del Web » Creando para Internet » HTML »

De XML a un nuevo XML usando XSLT

Estas en el tema de De XML a un nuevo XML usando XSLT en el foro de HTML en Foros del Web. Hola a todos, De antemanos gracias por toda la ayuda y me disculpa si no ubique mi pregunta en el foro correcto. Deseo transformar un ...
  #1 (permalink)  
Antiguo 10/12/2015, 08:01
Avatar de rocka8613  
Fecha de Ingreso: abril-2010
Mensajes: 33
Antigüedad: 14 años
Puntos: 0
De XML a un nuevo XML usando XSLT

Hola a todos,

De antemanos gracias por toda la ayuda y me disculpa si no ubique mi pregunta en el foro correcto.

Deseo transformar un XML en un nuevo XML usando XSLT pero tengo problemas, estoy intentando hacer varias cosas:

1. necesito cambiar el valor de "modification" a "insertion" ubicado en la ruta /MXML/events/mainEvent/action: para esto no tengo problema y me funciona.

2. Intento ingresar nuevos elementos en la ruta /MXML/parties, y aunque si lo logro hacer me pasa que se borra toda la información que contiene el nodo padre (parties) inmediatamente superior y solo me deja los nuevos elementos, aun no se que hago mal

XML ORIGINAL:
<?xml version="1.0" encoding="iso-8859-1"?>
<MxML version="1-1">
<events>
<mainEvent>
<action>insertion</action>
<subAction>partychinesewall</subAction>
</mainEvent>
</events>
<parties>
<party id="party_03861234569">
<partyConventions>
<paymentNetting>Si</paymentNetting>
</partyConventions>
</party>
</parties>
</MxML>

XML DESEADO AL FINAL:
<?xml version="1.0" encoding="iso-8859-1"?>
<MxML version="1-1">
<events>
<mainEvent>mc
<action>insertion</action>
<subAction>partychinesewall</subAction>
</mainEvent>
</events>
<parties>
<party id="party_03861234569">
<partyConventions>
<paymentNetting>Si</paymentNetting>
</partyConventions>
</party>
<partyChineseWalls>
<partyChineseWall id="pcw_0">
<partyChineseWallLabel>COLOMBIA_CTP</partyChineseWallLabel>
</partyChineseWall>
</partyChineseWalls>
</parties>
</MxML>


XML QUE ESTOY OBTENIENDO:
<MxML version="1-1">
<events>
<mainEvent>
<action>insertion</action>
<subAction>partychinesewall</subAction>
</mainEvent>
</events>
<parties>
<partyChineseWalls>
<partyChineseWall id="pcw_0">
<partyChineseWallLabel>COLOMBIA_CTP</partyChineseWallLabel>
</partyChineseWall>
</partyChineseWalls>
</parties>
</MxML>



XSLT USADO:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:mx="http://murex.com/xslt/common" xmlns:exsl="http://exslt.org/common" version="1.0">
<xsl:output encoding="iso-8859-1" omit-xml-declaration="yes" />

<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>

<xsl:variable name="action">
<xsl:value-of select="'insertion'" />
</xsl:variable>

<xsl:template match="mainEvent/action">
<action xsl:exclude-result-prefixes="mx exsl">
<xsl:value-of select="$action" />
</action>
</xsl:template>

<xsl:template match="MxML/parties">
<parties xsl:exclude-result-prefixes="mx exsl">
<partyChineseWalls>
<partyChineseWall id="pcw_0">
<partyChineseWallLabel>COLOMBIA_CTP</partyChineseWallLabel>
</partyChineseWall>
</partyChineseWalls>
</parties>
</xsl:template>

</xsl:stylesheet>

Etiquetas: todo, usando, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:10.