我需要在子级及其子级中设置命名空间,但是,当我将相同的命名空间属性时,子子级没有命名空间。
我需要这样的东西:
<?xml version="1.0" encoding="UTF-8"?>
<nfeProc xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00">
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
<infNFe versao="2.00" Id="NFe35120810609770000190550010000011151000011155">
...
但是我的代码只产生了这个:
<?xml version="1.0" encoding="UTF-8"?>
<nfeProc xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00">
<NFe>
<infNFe versao="2.00" Id="NFe35120810609770000190550010000011151000011155">
...
生成这部分XML的代码是:
Document doc = new Document();
Namespace portal = Namespace.getNamespace( "http://www.portalfiscal.inf.br/nfe" );
Element tagNfeProc = new Element( "nfeProc", portal );
tagNfeProc.setAttribute( "versao", "2.00" );
Element tagNFe = new Element( "NFe", portal );
...
tagNfeProc.getChildren().add( tagNFe );
doc.setRootElement( tagNfeProc );
答案 0 :(得分:0)
如果你真的想要添加它,你必须手动完成,使用我之前提到的'setAttribute'方法。
否则:
'NFe'标记不再需要namespace属性,因为该命名空间已经在更高级别(在您的示例中为顶级)声明,并且它将在您声明它的整个块中使用(继承)。
经过一番搜索,简要介绍一下 XML namespaces:)