我需要使用命名空间构建一个 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>
最佳答案
您可以自己构建 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。
关于Xml 命名空间 - Coldfusion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17470953/