1

我需要构建一个带有命名空间的 xml 文档。当我创建根元素时,我用xmlAttribute[xmlns]. 但在那之后,当我创建一个子元素时,也会显示这个命名空间引用。我需要怎么做?

这是我的代码示例

my_doc = XmlNew();
my_doc.xmlRoot = XmlElemNew(my_doc,"Invoice");
my_doc.xmlRoot.XmlAttributes["xmlns"] = 'urn:oasis:names:specification:ubl:schema:xsd:Invoice-2';
    my_doc.xmlRoot.XmlAttributes["xmlns:cbc"] = 'urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2';
    my_doc.Invoice.XmlChildren[1] = XmlElemNew(my_doc,"cbc:UBLVersionID");
    my_doc.Invoice.XmlChildren[1].XmlText = '2.0';

结果是

<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
    <cbc:UBLVersionID xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">2.0</cbc:UBLVersionID>
</Invoice>

但是,UBLVersionID元素应该看起来像这样。我不希望子元素再次显示命名空间。

<cbc:UBLVersionID>2.0</cbc:UBLVersionID>
4

1 回答 1

0

您可以自己构建 XML 对象(不使用内置函数)。就像是:

<cfsavecontent var="my_doc">
    <?xml version="1.0" encoding="UTF-8"?>
    <Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
        <cbc:UBLVersionID>2.0</cbc:UBLVersionID>
    </Invoice>
</cfsavecontent>

该变量my_doc现在将包含您首选格式的 XML。

于 2013-07-08T18:47:57.840 回答