2013-07-04 218 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當你這樣做時,這些事情都不應該成爲問題。 –