Inserir atributo xmlns em tags do meu xml

1 resposta
C

Opa pessoal, meu problema é o seguinte:

Tenho 2 arquivos xml distintos que preciso unir em um só, de forma a se tornarem 2 nodos filhos, tipo assim:

<tag_do_novo_pai>
    <tag_do_xml1>....</tag_do_xml1>
    <tag_do_xml2>....</tag_do_xml2>
</tag_do_novo_pai>

Ok, a questão é que preciso que tanto a tag_do_novo_pai quanto a tag__do_xml1 tenham o atributo xmlns=“http://www.portalfiscal.inf.br/nfe” (Sim, assunto da NFe). O arquivo xml1, já existente, já possui na tag ‘root’ a declaração do xmlns.

Quando faço o seguinte código:

Document xmlFinal = builder.newDocument();
xmlFinal.appendChild(xmlFinal.createElementNS("http://www.portalfiscal.inf.br/nfe","nfeProc"));
xmlFinal.getDocumentElement().setAttribute("versao",versaoOperacao());
xmlFinal.getDocumentElement().appendChild(xmlFinal.importNode(NFe, true)); //NFe é o nodo do xml1
xmlFinal.getDocumentElement().appendChild(xmlFinal.importNode(protNFe, true)); //protNFe é o nodo do xml2

Tenho como resultado:

- <nfeProc versao="1.10" xmlns="http://www.portalfiscal.inf.br/nfe">
+ <NFe>
+ <protNFe versao="1.10">
</nfeProc>

Reparem no xmlns.

Mas se eu SUBSTITUIR o comando xmlFinal.appendChild(xmlFinal.createElementNS(“http://www.portalfiscal.inf.br/nfe","nfeProc”)); por xmlFinal.appendChild(xmlFinal.createElement(“nfeProc”)); o resultado passa a ser:

- <nfeProc versao="1.10">
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
+ <protNFe versao="1.10">
</nfeProc>

O xmlns fica apenas na tag NFe. O que eu preciso é que as DUAS tags, nfeProc e NFe tenham o xmlns.

Como posso fazer isso?

Obrigado desde já!

1 Resposta

C

Ninguém?

Criado 20 de agosto de 2009
Ultima resposta 24 de ago. de 2009
Respostas 1
Participantes 1