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á!