este es el XML
Código:
actualmente obtengo los valores de esta forma:<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>
Código:
pero esto claramente no es la mejor opcion. 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++) {
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...