none
Renomear arquivos XML de acordo com dados das TAGs do proprio arquivo XML RRS feed

  • Discussão Geral

  • Explicação:

    Recentemente, tivemos problemas com um servidor que continha diversos arquivos XML. Utilizando um software de recuperacao, conseguimos recuperar 11 milhoes desses arquivos referentes a notas fiscais. Porem, o software recuperou os arquivos com numeros sequenciais que vao de 00000001 a 11000000.

    Preciso renomear esses arquivos como eram antigamente para que o Sistema consiga interpretar os dados.

    A logica seria o seguinte:

    Todo arquivo XML contem no começo a informação:

    <?xml version="1.0" ?>
    <NFe xmlns="http://www.portalfiscal.inf.br/nfe" xmlns:ns2="http://www.w3.org/2000/09/xmldsig#"><infNFe Id="NFe00000000000000000000000000000000000000000000" versao="2.00">

    ou

    <?xml version="1.0" encoding="utf-8"?><nfeProc versao="2.00" xmlns="http://www.portalfiscal.inf.br/nfe"><NFe xmlns="http://www.portalfiscal.inf.br/nfe"><infNFe Id="NFe31140806963088000204550040000229401000000009" versao="2.00">

    Os arquivos gerados pelo nosso sistema, vem com a informação "NFe00000000000000000000000000000000000000000000" e os arquivos emitidos eles vem com uma numeracao do tipo "NFe31140806963088000204550040000229401000000009" .

    Os XML com a numeracao DIFERENTE de "zeros" existe uma tag chamada <chNFe>31140806963088000204550040000229401000000009</chNFe>

    os arquivos que contem a informacao com um monte de "zeros" nao contem essa chave... 

    Sendo assim, queria que se o arquivo XML contiver a tag <chNFe> esse colocasse o nome do arquivo XML com essa numeracao, seguida de "-procNFE.xml".

    Ficaria entao o arquivo renomeado assim: 31140806963088000204550040000229401000000009-procNFE.xml

    No caso de NAO existir a tag <chNFE> ele renomeasse o arquivo com os dados contidos em 3 diferentes tags sendo elas:

    <emit><CNPJ>01234567890123</CNPJ> 

    <serie>5</serie>

    <nNF>12248</nNF> (porem, esse campo tem que ter 7 digitos, nesse caso, imputaria "0" na frente do numero.

    Mais o complemento "_EM.xml"

    Dessa forma, o nome do arquivo XML ficaria assim: 01234567890123_5_0012248_EM.xml

    Alguem tem ideia de como fazer isso?


    Albert Alberico dos Santos


    • Editado Santos Ber quarta-feira, 27 de agosto de 2014 16:29
    quarta-feira, 27 de agosto de 2014 16:29