Coger datos de xml para insertar en sql server
Publicado por JoseM (1 intervención) el 21/09/2012 09:34:47
Buenos días
Mis dudas es saber cómo insertar los datos de los ficheros xml que recibo a una tabla.
El problema es que no todos los mensajes tendrán la misma estructura, dependerán de si a veces tendrán más o menos datos. Y tambien cuando una etiqueta se repite varias veces
Por ejemplo, este es un fragmento del XML, y como ves la etiqueta PID.3 se abre y cierra varias veces:
<PID>
<PID.1>1</PID.1>
<PID.3>
<CX.1>4312302</CX.1>
<CX.4>
<HD.1>M</HD.1>
</CX.4>
<CX.5>CAP</CX.5>
<CX.9>
<CWE.1>6</CWE.1>
</CX.9>
</PID.3>
<PID.3>
<CX.1>14741B</CX.1>
<CX.4>
<HD.1>MI</HD.1>
</CX.4>
<CX.5>DNI</CX.5>
</PID.3>
<PID.3>
<CX.1>33457880</CX.1>
<CX.4>
<HD.1>ES</HD.1>
</CX.4>
<CX.5>TISIS</CX.5>
</PID.3>
<PID.3>
<CX.1>9999999999</CX.1>
<CX.4>
<HD.1>SSS</HD.1>
</CX.4>
<CX.5>NNSS</CX.5>
<CX.9>
<CWE.1>T-1-1-10</CWE.1>
</CX.9>
</PID.3>
</PID>
Si fuera una estructura fija y sin repetirse campos lo haría:
PID1 = mensajeXML.DocumentElement.SelectSingleNode("/PID").InnerText;
Y esa variable la meto en el INSERT que utilice para insertar datos en la tabla de sql server.
Alguien podría decirme como meter este fragmento en una tabla?
Mis dudas es saber cómo insertar los datos de los ficheros xml que recibo a una tabla.
El problema es que no todos los mensajes tendrán la misma estructura, dependerán de si a veces tendrán más o menos datos. Y tambien cuando una etiqueta se repite varias veces
Por ejemplo, este es un fragmento del XML, y como ves la etiqueta PID.3 se abre y cierra varias veces:
<PID>
<PID.1>1</PID.1>
<PID.3>
<CX.1>4312302</CX.1>
<CX.4>
<HD.1>M</HD.1>
</CX.4>
<CX.5>CAP</CX.5>
<CX.9>
<CWE.1>6</CWE.1>
</CX.9>
</PID.3>
<PID.3>
<CX.1>14741B</CX.1>
<CX.4>
<HD.1>MI</HD.1>
</CX.4>
<CX.5>DNI</CX.5>
</PID.3>
<PID.3>
<CX.1>33457880</CX.1>
<CX.4>
<HD.1>ES</HD.1>
</CX.4>
<CX.5>TISIS</CX.5>
</PID.3>
<PID.3>
<CX.1>9999999999</CX.1>
<CX.4>
<HD.1>SSS</HD.1>
</CX.4>
<CX.5>NNSS</CX.5>
<CX.9>
<CWE.1>T-1-1-10</CWE.1>
</CX.9>
</PID.3>
</PID>
Si fuera una estructura fija y sin repetirse campos lo haría:
PID1 = mensajeXML.DocumentElement.SelectSingleNode("/PID").InnerText;
Y esa variable la meto en el INSERT que utilice para insertar datos en la tabla de sql server.
Alguien podría decirme como meter este fragmento en una tabla?
Valora esta pregunta


0