Read XML with equal tag (nodes)

Asked

Viewed 106 times

0

I have this xml, and I need to get the tag <ns2:InfNfse Id="24030TZYKNKKIPZM4PU7XGAZJ0UA84O6">

But in xml there are several tags with equal names. I tried to do this way below:

XmlElement retEnviNFe = xmlResponse.DocumentElement;
XmlNodeList numero = retEnviNFe.SelectNodes("//ns2:Numero", ns);
Numero = numero[4].InnerText;
XmlNodeList codigoVerificacao = retEnviNFe.SelectNodes("//ns2:CodigoVerificacao", ns);
CodigoVerificacao = codigoVerificacao[1].InnerText;
foreach (XmlNodeList node in retEnviNFe.SelectNodes("//ns2:InfNfse", ns))
{
    Id = (node[1].Attributes["Id"].Value);
}

the Number and Verification Code I have already picked up correctly, but I need to get the Id of InfNfse, but has two in this XML back, I need to catch the second, but on the line foreach (XmlNodeList node in retEnviNFe.SelectNodes("//ns2:InfNfse", ns)) returns null.

This is an xml I need to get the data:

<soap:Envelope
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <ns3:substituirNfseResponse
            xmlns:ns2="http://www.abrasf.org.br/nfse.xsd"
            xmlns:ns3="http://ws.issweb.fiorilli.com.br/"
            xmlns:ns4="http://www.w3.org/2000/09/xmldsig#">
            <ns2:SubstituirNfseResposta>
                <ns2:RetSubstituicao>
                    <ns2:NfseSubstituida>
                        <ns2:CompNfse>
                            <ns2:Nfse versao="2.01">
                                <ns2:InfNfse Id="24029XVB442U6IVDHMJV7C2JMEM26UWH">
                                    <ns2:Numero>14546</ns2:Numero>
                                    <ns2:CodigoVerificacao>0MEID640A</ns2:CodigoVerificacao>
                                    <ns2:DataEmissao>2019-01-04T15:38:17</ns2:DataEmissao>
                                    <ns2:OutrasInformacoes>Val. Aprox. Tributos: Federal (13,45%) R$2,02 Estadual (0,00%) R$0,00 Municipal (10,00%) R$1,50
    Motivo Substituição: Substituição solicitada via Web Service</ns2:OutrasInformacoes>
                                    <ns2:ValoresNfse>
                                        <ns2:BaseCalculo>15.00</ns2:BaseCalculo>
                                        <ns2:Aliquota>2.0</ns2:Aliquota>
                                        <ns2:ValorIss>0.30</ns2:ValorIss>
                                        <ns2:ValorLiquidoNfse>15.00</ns2:ValorLiquidoNfse>
                                    </ns2:ValoresNfse>
                                    <ns2:PrestadorServico>
                                        <ns2:IdentificacaoPrestador>
                                            <ns2:CpfCnpj>
                                                <ns2:Cnpj>01001001000113</ns2:Cnpj>
                                            </ns2:CpfCnpj>
                                            <ns2:InscricaoMunicipal>15000</ns2:InscricaoMunicipal>
                                        </ns2:IdentificacaoPrestador>
                                        <ns2:RazaoSocial>PRESTADOR TESTE</ns2:RazaoSocial>
                                        <ns2:NomeFantasia>EMPRESA TESTE 01</ns2:NomeFantasia>
                                        <ns2:Endereco>
                                            <ns2:Endereco>RUA LOGRADOURO 1</ns2:Endereco>
                                            <ns2:Numero>0</ns2:Numero>
                                            <ns2:Bairro>CENTRO</ns2:Bairro>
                                            <ns2:CodigoMunicipio>3504800</ns2:CodigoMunicipio>
                                            <ns2:Uf>SP</ns2:Uf>
                                            <ns2:CodigoPais>1058</ns2:CodigoPais>
                                            <ns2:Cep>15140000</ns2:Cep>
                                        </ns2:Endereco>
                                        <ns2:Contato>
                                            <ns2:Email>[email protected]</ns2:Email>
                                        </ns2:Contato>
                                    </ns2:PrestadorServico>
                                    <ns2:OrgaoGerador>
                                        <ns2:CodigoMunicipio>3504800</ns2:CodigoMunicipio>
                                        <ns2:Uf>MS</ns2:Uf>
                                    </ns2:OrgaoGerador>
                                    <ns2:DeclaracaoPrestacaoServico>
                                        <ns2:InfDeclaracaoPrestacaoServico>
                                            <ns2:Rps>
                                                <ns2:IdentificacaoRps>
                                                    <ns2:Numero>23</ns2:Numero>
                                                    <ns2:Serie>463</ns2:Serie>
                                                    <ns2:Tipo>1</ns2:Tipo>
                                                </ns2:IdentificacaoRps>
                                                <ns2:DataEmissao>2019-01-04</ns2:DataEmissao>
                                                <ns2:Status>2</ns2:Status>
                                            </ns2:Rps>
                                            <ns2:Competencia>2019-01-04</ns2:Competencia>
                                            <ns2:Servico>
                                                <ns2:Valores>
                                                    <ns2:ValorServicos>15.00</ns2:ValorServicos>
                                                    <ns2:ValorDeducoes>0.00</ns2:ValorDeducoes>
                                                    <ns2:ValorPis>0.00</ns2:ValorPis>
                                                    <ns2:ValorCofins>0.00</ns2:ValorCofins>
                                                    <ns2:ValorInss>0.00</ns2:ValorInss>
                                                    <ns2:ValorIr>0.00</ns2:ValorIr>
                                                    <ns2:ValorCsll>0.00</ns2:ValorCsll>
                                                    <ns2:OutrasRetencoes>0.00</ns2:OutrasRetencoes>
                                                    <ns2:ValorIss>0.30</ns2:ValorIss>
                                                    <ns2:Aliquota>2.0</ns2:Aliquota>
                                                    <ns2:DescontoIncondicionado>0.00</ns2:DescontoIncondicionado>
                                                    <ns2:DescontoCondicionado>0.00</ns2:DescontoCondicionado>
                                                </ns2:Valores>
                                                <ns2:IssRetido>2</ns2:IssRetido>
                                                <ns2:ResponsavelRetencao>1</ns2:ResponsavelRetencao>
                                                <ns2:ItemListaServico>01.05</ns2:ItemListaServico>
                                                <ns2:CodigoTributacaoMunicipio>0000010000005</ns2:CodigoTributacaoMunicipio>
                                                <ns2:Discriminacao>Descricao: teste Qtd: 1 V.Unit.: 15,00 V.Total: 15,00</ns2:Discriminacao>
                                                <ns2:CodigoMunicipio>3504800</ns2:CodigoMunicipio>
                                                <ns2:ExigibilidadeISS>1</ns2:ExigibilidadeISS>
                                                <ns2:MunicipioIncidencia>3504800</ns2:MunicipioIncidencia>
                                            </ns2:Servico>
                                            <ns2:Prestador>
                                                <ns2:CpfCnpj>
                                                    <ns2:Cnpj>01001001000113</ns2:Cnpj>
                                                </ns2:CpfCnpj>
                                                <ns2:InscricaoMunicipal>1.000.10</ns2:InscricaoMunicipal>
                                            </ns2:Prestador>
                                            <ns2:Tomador>
                                                <ns2:IdentificacaoTomador>
                                                    <ns2:CpfCnpj>
                                                        <ns2:Cpf>08297163008</ns2:Cpf>
                                                    </ns2:CpfCnpj>
                                                </ns2:IdentificacaoTomador>
                                                <ns2:RazaoSocial>Teste Mariana</ns2:RazaoSocial>
                                                <ns2:Endereco>
                                                    <ns2:Endereco>RUA JARBAS PIMENTA</ns2:Endereco>
                                                    <ns2:Numero>514</ns2:Numero>
                                                    <ns2:Complemento>complemento cobrancaaeAaO</ns2:Complemento>
                                                    <ns2:Bairro>NOVA ERA</ns2:Bairro>
                                                    <ns2:CodigoMunicipio>3504800</ns2:CodigoMunicipio>
                                                    <ns2:Uf>SP</ns2:Uf>
                                                    <ns2:Cep>37170000</ns2:Cep>
                                                </ns2:Endereco>
                                                <ns2:Contato>
                                                    <ns2:Telefone>3538511836</ns2:Telefone>
                                                    <ns2:Email>[email protected]</ns2:Email>
                                                </ns2:Contato>
                                            </ns2:Tomador>
                                            <ns2:RegimeEspecialTributacao>0</ns2:RegimeEspecialTributacao>
                                            <ns2:OptanteSimplesNacional>2</ns2:OptanteSimplesNacional>
                                            <ns2:IncentivoFiscal>2</ns2:IncentivoFiscal>
                                        </ns2:InfDeclaracaoPrestacaoServico>
                                    </ns2:DeclaracaoPrestacaoServico>
                                </ns2:InfNfse>
                            </ns2:Nfse>
                            <ns2:NfseSubstituicao versao="2.01">
                                <ns2:SubstituicaoNfse>
                                    <ns2:NfseSubstituidora>14547</ns2:NfseSubstituidora>
                                </ns2:SubstituicaoNfse>
                            </ns2:NfseSubstituicao>
                        </ns2:CompNfse>
                    </ns2:NfseSubstituida>
                    <ns2:NfseSubstituidora>
                        <ns2:CompNfse>
                            <ns2:Nfse versao="2.01">
                                <ns2:InfNfse Id="24030TZYKNKKIPZM4PU7XGAZJ0UA84O6">
                                    <ns2:Numero>14547</ns2:Numero>
                                    <ns2:CodigoVerificacao>XJ5K4QNCE</ns2:CodigoVerificacao>
                                    <ns2:DataEmissao>2019-01-04T15:39:16</ns2:DataEmissao>
                                    <ns2:OutrasInformacoes>Val. Aprox. Tributos: Federal (13,45%) R$2,02 Estadual (0,00%) R$0,00 Municipal (10,00%) R$1,50</ns2:OutrasInformacoes>
                                    <ns2:ValoresNfse>
                                        <ns2:BaseCalculo>15.00</ns2:BaseCalculo>
                                        <ns2:Aliquota>2.0</ns2:Aliquota>
                                        <ns2:ValorIss>0.30</ns2:ValorIss>
                                        <ns2:ValorLiquidoNfse>15.00</ns2:ValorLiquidoNfse>
                                    </ns2:ValoresNfse>
                                    <ns2:PrestadorServico>
                                        <ns2:IdentificacaoPrestador>
                                            <ns2:CpfCnpj>
                                                <ns2:Cnpj>01001001000113</ns2:Cnpj>
                                            </ns2:CpfCnpj>
                                            <ns2:InscricaoMunicipal>15000</ns2:InscricaoMunicipal>
                                        </ns2:IdentificacaoPrestador>
                                        <ns2:RazaoSocial>PRESTADOR TESTE</ns2:RazaoSocial>
                                        <ns2:NomeFantasia>EMPRESA TESTE 01</ns2:NomeFantasia>
                                        <ns2:Endereco>
                                            <ns2:Endereco>RUA LOGRADOURO 1</ns2:Endereco>
                                            <ns2:Numero>0</ns2:Numero>
                                            <ns2:Bairro>CENTRO</ns2:Bairro>
                                            <ns2:CodigoMunicipio>3504800</ns2:CodigoMunicipio>
                                            <ns2:Uf>SP</ns2:Uf>
                                            <ns2:CodigoPais>1058</ns2:CodigoPais>
                                            <ns2:Cep>15140000</ns2:Cep>
                                        </ns2:Endereco>
                                        <ns2:Contato>
                                            <ns2:Email>[email protected]</ns2:Email>
                                        </ns2:Contato>
                                    </ns2:PrestadorServico>
                                    <ns2:OrgaoGerador>
                                        <ns2:CodigoMunicipio>3504800</ns2:CodigoMunicipio>
                                        <ns2:Uf>MS</ns2:Uf>
                                    </ns2:OrgaoGerador>
                                    <ns2:DeclaracaoPrestacaoServico>
                                        <ns2:InfDeclaracaoPrestacaoServico>
                                            <ns2:Rps>
                                                <ns2:IdentificacaoRps>
                                                    <ns2:Numero>24</ns2:Numero>
                                                    <ns2:Serie>463</ns2:Serie>
                                                    <ns2:Tipo>1</ns2:Tipo>
                                                </ns2:IdentificacaoRps>
                                                <ns2:DataEmissao>2019-01-04</ns2:DataEmissao>
                                                <ns2:Status>1</ns2:Status>
                                            </ns2:Rps>
                                            <ns2:Competencia>2019-01-04</ns2:Competencia>
                                            <ns2:Servico>
                                                <ns2:Valores>
                                                    <ns2:ValorServicos>15.00</ns2:ValorServicos>
                                                    <ns2:ValorDeducoes>0.00</ns2:ValorDeducoes>
                                                    <ns2:ValorPis>0.00</ns2:ValorPis>
                                                    <ns2:ValorCofins>0.00</ns2:ValorCofins>
                                                    <ns2:ValorInss>0.00</ns2:ValorInss>
                                                    <ns2:ValorIr>0.00</ns2:ValorIr>
                                                    <ns2:ValorCsll>0.00</ns2:ValorCsll>
                                                    <ns2:OutrasRetencoes>0.00</ns2:OutrasRetencoes>
                                                    <ns2:ValorIss>0.30</ns2:ValorIss>
                                                    <ns2:Aliquota>2.0</ns2:Aliquota>
                                                    <ns2:DescontoIncondicionado>0.00</ns2:DescontoIncondicionado>
                                                    <ns2:DescontoCondicionado>0.00</ns2:DescontoCondicionado>
                                                </ns2:Valores>
                                                <ns2:IssRetido>2</ns2:IssRetido>
                                                <ns2:ResponsavelRetencao>1</ns2:ResponsavelRetencao>
                                                <ns2:ItemListaServico>01.05</ns2:ItemListaServico>
                                                <ns2:CodigoTributacaoMunicipio>0000010000005</ns2:CodigoTributacaoMunicipio>
                                                <ns2:Discriminacao>Descricao: teste</ns2:Discriminacao>
                                                <ns2:CodigoMunicipio>3504800</ns2:CodigoMunicipio>
                                                <ns2:ExigibilidadeISS>1</ns2:ExigibilidadeISS>
                                                <ns2:MunicipioIncidencia>3504800</ns2:MunicipioIncidencia>
                                            </ns2:Servico>
                                            <ns2:Prestador>
                                                <ns2:CpfCnpj>
                                                    <ns2:Cnpj>01001001000113</ns2:Cnpj>
                                                </ns2:CpfCnpj>
                                                <ns2:InscricaoMunicipal>1.000.10</ns2:InscricaoMunicipal>
                                            </ns2:Prestador>
                                            <ns2:Tomador>
                                                <ns2:IdentificacaoTomador>
                                                    <ns2:CpfCnpj>
                                                        <ns2:Cpf>08297163008</ns2:Cpf>
                                                    </ns2:CpfCnpj>
                                                </ns2:IdentificacaoTomador>
                                                <ns2:RazaoSocial>Teste Mariana</ns2:RazaoSocial>
                                                <ns2:Endereco>
                                                    <ns2:Endereco>RUA JARBAS PIMENTA</ns2:Endereco>
                                                    <ns2:Numero>514</ns2:Numero>
                                                    <ns2:Complemento>complemento cobrancaaeAaO</ns2:Complemento>
                                                    <ns2:Bairro>NOVA ERA</ns2:Bairro>
                                                    <ns2:CodigoMunicipio>3504800</ns2:CodigoMunicipio>
                                                    <ns2:Uf>SP</ns2:Uf>
                                                    <ns2:Cep>37170000</ns2:Cep>
                                                </ns2:Endereco>
                                                <ns2:Contato/>
                                            </ns2:Tomador>
                                            <ns2:RegimeEspecialTributacao>0</ns2:RegimeEspecialTributacao>
                                            <ns2:OptanteSimplesNacional>2</ns2:OptanteSimplesNacional>
                                            <ns2:IncentivoFiscal>2</ns2:IncentivoFiscal>
                                        </ns2:InfDeclaracaoPrestacaoServico>
                                    </ns2:DeclaracaoPrestacaoServico>
                                </ns2:InfNfse>
                            </ns2:Nfse>
                        </ns2:CompNfse>
                    </ns2:NfseSubstituidora>
                </ns2:RetSubstituicao>
            </ns2:SubstituirNfseResposta>
        </ns3:substituirNfseResponse>
    </soap:Body>
</soap:Envelope>

I need the Code Verification information, Number, and the id of the infNfse tag, as I can, in case I need <ns2:NfseSubstituidora>which is the second part of xml, how to get ?

  • Have you thought about using Inline? It’s easier to query

  • I already tried to do in Lilli, but I was unsuccessful, as I can get in Lilli ?

1 answer

1


Using LINQ:

var xDoc = XDocument.Load(@"C:\temp\xmlnfse.xml");

XNamespace ns3 = "http://ws.issweb.fiorilli.com.br/";
var result = xDoc.Descendants(ns3 + "substituirNfseResponse");
XNamespace ns2 = "http://www.abrasf.org.br/nfse.xsd";

var infProt = from record in result.Descendants(ns2 + "NfseSubstituidora").Descendants(ns2 + "InfNfse")
select new
{
    Id = record.FirstAttribute.Value,
    CodigoVerificacao = record.Elements(ns2 + "CodigoVerificacao").First().Value
};

string id = string.Empty, codigoVerificacao = string.Empty;
foreach (var element in infProt)
{
    id = element.Id;
    codigoVerificacao = element.CodigoVerificacao;
}
Console.WriteLine($"ID: {id} CODIGO VERIFICACAO: {codigoVerificacao}");
Console.ReadKey();
  • 1

    Gave it right, includes to get the number, and it worked. Thank you.

  • You can ask me a question ?

  • @marianac_costa Yes, you can ask.

  • 1

    I figured it out already, thanks.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.