7
I’m having a problem reading an XML file in C#. In which this is a file of a pre-sale, and I am with the following situation: in my xml I will have several pre-sales, and each pre-sale may have several items. So far everything ok, I’m able to identify the amount of pre-sale and its items. However, when gathering the "1" pre-sale information it brings the "1" pre-sale items but also the "2" pre-sale items".
My XML file is this:
<?xml version="1.0"?>
<fdv>
<data>28/01/2015 09:25:47</data>
<valores>
<orcamento>
<id>1</id>
<cliente>
<id>151</id>
<codigoImport>000000000000623</codigoImport>
<uf>PE</uf>
<bairro>AGAMENOM MAGALHAES</bairro>
<cep />
<cidade>CARUARU</cidade>
<complEnd></complEnd>
<documento1 />
<documento2 />
<email></email>
<endereco>RODOVIA BR 232 KM 137</endereco>
<fantasia></fantasia>
<nome>ALIANÇA DISTRIB GEN ALIMENTICIOS LTDA</nome>
<num>S/N</num>
<obs></obs>
<pessoa>J</pessoa>
<regiao>
<id>0</id>
<codigoImport />
<nome />
</regiao>
<responsavel />
<telefone>0000000000</telefone>
<ativo>false</ativo>
</cliente>
<condPagto>
<id>22</id>
<codigoImport>11</codigoImport>
<descricao>A VISTA</descricao>
<porcDesc>0.0</porcDesc>
<parcelas>0</parcelas>
</condPagto>
<data>2015-01-28 11:19:31.0 UTC</data>
<itens>
<orcamentoitem>
<id>1</id>
<produto>
<id>2130</id>
<codigoImport>001531</codigoImport>
<codBarras>07898924256428</codBarras>
<descricao>NOVO PRODUTO</descricao>
<url />
<grupo>
<id>1</id>
<codigoImport>0001</codigoImport>
<descricao>PADRÃO</descricao>
</grupo>
<obs />
<un>UN</un>
<precoVenda>10.5</precoVenda>
<estoque>0.0</estoque>
</produto>
<idOrcamento>1</idOrcamento>
<qtde>3.0</qtde>
<valor>10.5</valor>
<valorBruto>10.5</valorBruto>
</orcamentoitem>
<orcamentoitem>
<id>1</id>
<produto>
<id>2130</id>
<codigoImport>001531</codigoImport>
<codBarras>07898924256428</codBarras>
<descricao>ARCO DE SERRA SOLIDO</descricao>
<url />
<grupo>
<id>1</id>
<codigoImport>0001</codigoImport>
<descricao>PADRÃO</descricao>
</grupo>
<obs />
<un>UN</un>
<precoVenda>10.5</precoVenda>
<estoque>0.0</estoque>
</produto>
<idOrcamento>1</idOrcamento>
<qtde>3.0</qtde>
<valor>10.5</valor>
<valorBruto>10.5</valorBruto>
</orcamentoitem>
<orcamentoitem>
<id>2</id>
<produto>
<id>1917</id>
<codigoImport>001160</codigoImport>
<codBarras>00000000001160</codBarras>
<descricao>ARRUELA 5/32</descricao>
<url />
<grupo>
<id>1</id>
<codigoImport>0001</codigoImport>
<descricao>PADRÃO</descricao>
</grupo>
<obs />
<un>UN</un>
<precoVenda>0.2</precoVenda>
<estoque>0.0</estoque>
</produto>
<idOrcamento>1</idOrcamento>
<qtde>50.0</qtde>
<valor>0.2</valor>
<valorBruto>0.2</valorBruto>
</orcamentoitem>
<orcamentoitem>
<id>3</id>
<produto>
<id>2067</id>
<codigoImport>001405</codigoImport>
<codBarras>00000000001405</codBarras>
<descricao>ARMÁRIO PARA BANHEIR</descricao>
<url />
<grupo>
<id>1</id>
<codigoImport>0001</codigoImport>
<descricao>PADRÃO</descricao>
</grupo>
<obs />
<un>UN</un>
<precoVenda>34.7</precoVenda>
<estoque>0.0</estoque>
</produto>
<idOrcamento>1</idOrcamento>
<qtde>1.0</qtde>
<valor>34.7</valor>
<valorBruto>34.7</valorBruto>
</orcamentoitem>
</itens>
<obs />
<status>1</status>
<valorTotal>76.2</valorTotal>
</orcamento>
<orcamento>
<id>2</id>
<cliente>
<id>154</id>
<codigoImport>000000000000626</codigoImport>
<uf>PE</uf>
<bairro>CENTRO</bairro>
<cep />
<cidade>TEREZINHA</cidade>
<complEnd></complEnd>
<documento1 />
<documento2 />
<email></email>
<endereco>RUA CORONEL FRANCISCO MARTINS</endereco>
<fantasia></fantasia>
<nome>CONSELHO ESCOLAR DA ESCOLA ABILIO ALVES</nome>
<num>S/N</num>
<obs></obs>
<pessoa>J</pessoa>
<regiao>
<id>0</id>
<codigoImport />
<nome />
</regiao>
<responsavel />
<telefone>8737921116</telefone>
<ativo>false</ativo>
</cliente>
<condPagto>
<id>13</id>
<codigoImport>02</codigoImport>
<descricao>0 + 02</descricao>
<porcDesc>0.0</porcDesc>
<parcelas>2</parcelas>
</condPagto>
<data>2015-01-28 11:21:29.0 UTC</data>
<itens>
<orcamentoitem>
<id>4</id>
<produto>
<id>2346</id>
<codigoImport>001934</codigoImport>
<codBarras>00000000001934</codBarras>
<descricao>BANDEJA PLASTICA 23C</descricao>
<url />
<grupo>
<id>1</id>
<codigoImport>0001</codigoImport>
<descricao>PADRÃO</descricao>
</grupo>
<obs />
<un>AM</un>
<precoVenda>4.0</precoVenda>
<estoque>0.0</estoque>
</produto>
<idOrcamento>2</idOrcamento>
<qtde>100.0</qtde>
<valor>4.0</valor>
<valorBruto>4.0</valorBruto>
</orcamentoitem>
<orcamentoitem>
<id>5</id>
<produto>
<id>1647</id>
<codigoImport>000608</codigoImport>
<codBarras>00000000000608</codBarras>
<descricao>BACIA SÁNITARIO LUZA</descricao>
<url />
<grupo>
<id>1</id>
<codigoImport>0001</codigoImport>
<descricao>PADRÃO</descricao>
</grupo>
<obs />
<un>UN</un>
<precoVenda>93.0</precoVenda>
<estoque>0.0</estoque>
</produto>
<idOrcamento>2</idOrcamento>
<qtde>1.0</qtde>
<valor>93.0</valor>
<valorBruto>93.0</valorBruto>
</orcamentoitem>
<orcamentoitem>
<id>6</id>
<produto>
<id>2374</id>
<codigoImport>002023</codigoImport>
<codBarras>00000000002023</codBarras>
<descricao>ARGAMASSA TOP</descricao>
<url />
<grupo>
<id>1</id>
<codigoImport>0001</codigoImport>
<descricao>PADRÃO</descricao>
</grupo>
<obs />
<un>AM</un>
<precoVenda>32.0</precoVenda>
<estoque>0.0</estoque>
</produto>
<idOrcamento>2</idOrcamento>
<qtde>4.0</qtde>
<valor>32.0</valor>
<valorBruto>32.0</valorBruto>
</orcamentoitem>
</itens>
<obs />
<status>1</status>
<valorTotal>621.0</valorTotal>
</orcamento>
</valores>
<vendedor>V001</vendedor>
</fdv>
Already my XML reading code is now this way:
private void impotPreVenda(string caminho){
if(File.Exists(caminho)){
XmlDocument doc = new XmlDocument();
doc.Load(caminho);
XmlNodeList xmlPreVen = doc.GetElementsByTagName("orcamento");
XmlNodeList xnListItens = doc.GetElementsByTagName("orcamentoitem");
for (int i = 0; i < xmlPreVen.Count; i++)
{
string IdCli = xmlPreVen[i]["cliente"].ChildNodes[1].InnerText;
for(int y = 0; y < xnListItens.Count; y++){
string DescPro = xmlPreVen[i]["itens"].ChildNodes[y].ChildNodes[1].ChildNodes[3].InnerText;
}
}
}
}
But I haven’t been able to get him to take only the items from the first pre-sale.
– Joaquim Caetano Teixeira