1

我需要在一个孩子和它的孩子中设置一个命名空间,但是,当我赋予相同的命名空间时,子孩子没有命名空间。

我需要这样的东西:

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

1 回答 1

0

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

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

经过一番搜索,关于 XML 命名空间的简要说明:)

于 2013-05-08T12:09:40.480 回答