2013-07-04 173 views
1

我需要用命名空间构建一个xml文档。当我创建根元素时,我用xmlAttribute[xmlns]定义了所有必需的名称空间。但是在此之后,当我创建一个子元素时,这个名称空间引用也被显示出来。我需要做些什么?Xml命名空间 - Coldfusion

这里是我的代码示例

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> 
+0

请任何人都可以回答这个问题吗? – AKBAL

回答

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。

+0

@AKBAL当你这样做时,这些事情都不应该成为问题。 –