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...