Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/12/2010, 12:44
Emerald
 
Fecha de Ingreso: mayo-2006
Mensajes: 243
Antigüedad: 16 años, 1 mes
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!