Foros del Web » Programación para mayores de 30 ;) » .NET »

Hacer un merge de dos grandes xml's

Estas en el tema de Hacer un merge de dos grandes xml's en el foro de .NET en Foros del Web. Hola!! Tengo dos XML´s muy pesados, con la misma estructura. Los dos vienen de fuentes distintas. Lo que necesito hacer son dos procesos distintos: 1. ...
  #1 (permalink)  
Antiguo 02/12/2010, 12:44
 
Fecha de Ingreso: mayo-2006
Mensajes: 243
Antigüedad: 17 años, 11 meses
Puntos: 0
Pregunta Hacer un merge de dos grandes xml's

Hola!!

Tengo dos XML´s muy pesados, con la misma estructura. Los dos vienen de fuentes distintas. Lo que necesito hacer son dos procesos distintos:

1. Eliminar repetidos

Tengo dos XML's en donde uno es el Principal.xml y otro Secundario.xml, y de la mezcla de estos dos voy a crear un Resultado.xml

la estructura de Principal.xml y Secundario.xml es igual:

Ejemplo:
<ROOT>
<Results>
<Result ID=1>
<ID>1234</ID>
<Datos>este es mi dato 1<Datos>
</Result>
<Result ID=2>
<ID>1235</ID>
<Datos>este es mi dato 2<Datos>
</Result>
<Result ID=3>
<ID>1236</ID>
<Datos>este es mi dato 3<Datos>
</Result>
<Results>
</ROOT>


En Resultado.xml voy a incluir todos los <Result> de Principal.xml primero y de Secundario.xml solo voy a incluir aquellos <Result> que no estén, basandome en el nodo <ID>, es decir, de secundario no voy a incluir los id's que ya estén en primario.



2. Reemplazar repetidos

Tengo dos XML's en donde uno es el Principal.xml y otro Secundario.xml, y de la mezcla de estos dos voy a crear un Resultado.xml

la estructura de Principal.xml y Secundario.xml es igual:

Ejemplo:
<ROOT>
<Results>
<Result ID=1>
<ID>1234</ID>
<Datos>este es mi dato 1<Datos>
</Result>
<Result ID=2>
<ID>1235</ID>
<Datos>este es mi dato 2<Datos>
</Result>
<Result ID=3>
<ID>1236</ID>
<Datos>este es mi dato 3<Datos>
</Result>
<Results>
</ROOT>

En Resultado.xml voy a incluir todos los <Result>'s Primario.xml primero, pero si veo que en Primario.xml hay un ID que está en Secundario.xml, entonces sustituyo ese <Result> de Primario.xml con el <Result> de Secundario.xml y ya hasta el final agrego los Results de Secundario cuyos Id's no estuvieron en Primario

Espero haberme explicado.
No se si esto se pueda hacer facilmente con LINQ. Ambos XML's son muy pesados y no se si haya manera de que con LINQ no fuera tan tardado hacer esto.

Agradezco mucho la ayuda que me puedan dar.

Saludos!
  #2 (permalink)  
Antiguo 24/12/2010, 06:24
Avatar de Indigo77  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 60
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Hacer un merge de dos grandes xml's

Buenas,

yo he mezclado xml de manera similar a la tuya de varios megas y no he tenido problemas... Inicialmente use la clase XmlDocument y similares y posteriormente migré a XDocument y sin problemas la verdad.

Saludos.
__________________
Visita mi blog http://www.detrasdelteclado.com

Etiquetas: dos, grandes
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 13:43.