Xml 命名空间 - Coldfusion

标签 xml coldfusion namespaces

我需要使用命名空间构建一个 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/

相关文章:

php - 不同文件夹中的文件具有相同的命名空间

xml - "Template rules match elements in no namespace"消息

coldfusion - 带有 ColdFusion 的 DocuSign API

java - 在 Java 中将 XML 文档写入文件时出错

java - Textview 搞乱了阿拉伯字母

xml - Base64 XML 二进制内容

sql - 通配符 '%' ,在 ColdFusion cfscript 查询 LIKE 语句中?

types - 使用 cfspreadsheet 读取列格式

XSLT 命名空间和解析硬编码前缀

java - 将图像按钮与 TextView XML 对齐