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

Leer Xml

Estas en el tema de Leer Xml en el foro de .NET en Foros del Web. Estimados estoy tratando de obtener datos de Tag dentro de un nodos con atriutos este es el XML Código: <DescargaDTResult xmlns="http://dtservice.iconstruye.cl/"> <EnvioICDoc xmlns="http://www.iconstruye.com/ICDocPg"> <SetICDoc ID="22-10-2014 ...
  #1 (permalink)  
Antiguo 22/10/2014, 19:14
 
Fecha de Ingreso: julio-2010
Mensajes: 19
Antigüedad: 13 años, 9 meses
Puntos: 0
Leer Xml

Estimados estoy tratando de obtener datos de Tag dentro de un nodos con atriutos

este es el XML
Código:
<DescargaDTResult xmlns="http://dtservice.iconstruye.cl/">
  <EnvioICDoc xmlns="http://www.iconstruye.com/ICDocPg">
    <SetICDoc ID="22-10-2014 8:36:55">
      <Caratula version="1">
        <RutEmisor>96513310-0</RutEmisor>
        <TmstFirmaEnv>2014-10-22T08:36:55</TmstFirmaEnv>
        <SubTotICDoc>
          <TpoICDoc>FC</TpoICDoc>
          <NroICDoc>10</NroICDoc>
        </SubTotICDoc>
      </Caratula>
      <ICDoc version="4.01">
        <FechaXML>2014-10-22T08:36:55</FechaXML>
        <Documento ID="6583122">
          <LineasFactSinOc></LineasFactSinOc>
          <Encabezado>
            <IdDoc>
              <TipoDoc>FC</TipoDoc>
              <NumDoc>1234567</NumDoc>
              <FolioUnico>L145573-R132930</FolioUnico>
              <FchTransaccion>2014-10-10T16:03:41</FchTransaccion>
              <FchEmis>2014-10-10</FchEmis>
              <FchVenc>2015-01-12</FchVenc>
              <FchRecepcion>2014-10-10</FchRecepcion>
              <FchEstimadaPago>2014-10-10</FchEstimadaPago>
              <TipoDocTributario>Afecta</TipoDocTributario>
              <AgenteRetenedor>1</AgenteRetenedor>
              <SinOC>false</SinOC>
              <Electronico>false</Electronico>          
            </IdDoc>
            
            <Proveedor>
              <RUTProveedor>96792430-K</RUTProveedor>
              <Extranjero>false</Extranjero>
              <RznSoc>SODIMAC S.A.</RznSoc>             
            </Proveedor>
            <Totales>
              <MntNeto>86100.000000</MntNeto>
              <IVA>16359.000000</IVA>              
            </Totales>           
          </Encabezado>
          <DocAsociados ID="9482069">
            ...
            <ItemRecibidos ID="20303330">
              ..
              <LineaOC ID="20303330-28416369">
                ...
              </LineaOC>
            </ItemRecibidos>
          </DocAsociados>
        </Documento>
      </ICDoc>
      <ICDoc version="4.01">
         <FechaXML>XXXXXXX</FechaXML>
         <Documento ID="XXXXXXX">
         </Documento>
      </ICDoc>
    </SetICDoc>
  </EnvioICDoc>
</DescargaDTResult>
actualmente obtengo los valores de esta forma:
Código:
string Xml = Cliente.Procesar("inarco", "pass01inarco", xxx).InnerXml;


            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(Xml);
            XmlNodeList personas = xmlDoc.GetElementsByTagName("LineaOC");
            textBox1.Text = Xml;
            XmlNodeList elemList = xmlDoc.GetElementsByTagName("NumOC");
            for (int i = 0; i < elemList.Count; i++)
            {
                dgvDetalleOC.Rows.Insert(0, elemList[i].InnerText.ToString().Replace("-", ""), "", "", "", "");
            }

 XmlNodeList elemListNumDoc = xmlDoc.GetElementsByTagName("NumDoc");
            for (int i = 0; i < elemListNumDoc.Count; i++)
            {

                dgvNumDoc.Rows.Insert(0, elemListNumDoc[i].InnerText.ToString(), "", "", "", "");
            }
            XmlNodeList elemListz = xmlDoc.GetElementsByTagName("FchEmis");
            for (int i = 0; i < elemListz.Count; i++)
            {
pero esto claramente no es la mejor opcion.

de que forma podria obtener una lista con el resultado asi:

Documento ID RutComprador RutProveedor NumDoc NumOC NumLineaOC
3979675 111111-1 79881570-9 1111 3333 1
3979688 222222-2 79881570-9 3333 4444 1
3979688 222222-2 79881570-9 3333 4444 2

lo necesito agrupado por nodos...

Etiquetas: 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 03:41.