Child和Sub Child中的相同命名空间(JDOM2)

时间:2013-03-19 14:27:52

标签: java xml jdom-2

我需要在子级及其子级中设置命名空间,但是,当我将相同的命名空间属性时,子子级没有命名空间。

我需要这样的东西:

<?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 );

1 个答案:

答案 0 :(得分:0)

如果你真的想要添加它,你必须手动完成,使用我之前提到的'setAttribute'方法。

否则:
'NFe'标记不再需要namespace属性,因为该命名空间已经在更高级别(在您的示例中为顶级)声明,并且它将在您声明它的整个块中使用(继承)。

经过一番搜索,简要介绍一下 XML namespaces:)