2016-03-18 109 views
1

我想在VB6中創建類似這樣的XML文檔:創建XML消息在VB6

<?xml version="1.0"?> 
<AKU_BA_GETMEDBAL_REQUEST xmlns="http://xmlns.aku.edu/ps/sas/schemas/AKU_BA_GETMEDBAL_REQUEST.V1"> 
    <AKU_BA_MRNO>255-30-98</AKU_BA_MRNO> 
    <AKU_BA_SYS_LOCATION>"karachi"</AKU_BA_SYS_LOCATION> 
    <AKU_BA_CASHLESS_LOCK>"N"</AKU_BA_CASHLESS_LOCK> 
    <AKU_BA_GET_BALANCE>"N"</AKU_BA_GET_BALANCE> 
</AKU_BA_GETMEDBAL_REQUEST> 

,我使用此代碼:

Dim objDOM As New MSXML2.DOMDocument30 
Dim objNode As MSXML2.IXMLDOMNode 
Dim objPerson As MSXML2.IXMLDOMNode 
Dim objGrandChildNode As MSXML2.IXMLDOMNode 
Dim objAttribute As MSXML2.IXMLDOMAttribute 
Dim objElement As MSXML2.IXMLDOMElement 
' Create the main xml node 
Set objNode = objDOM.createNode(NODE_PROCESSING_INSTRUCTION, "xml", "") 
objDOM.appendChild objNode 
Set objNode = objDOM.createNode(NODE_ELEMENT, Request1, Request2) 
Dim i As Integer 
For i = 1 To AttributeCollection.Count 
    Set objPerson = objDOM.createNode(NODE_ELEMENT, AttributeCollection.Item(i), "") 
    objPerson.Text = AttributeCollection.Item(i + 1) 
    objNode.appendChild objPerson 
    i = i + 1 
Next i 
objDOM.appendChild objNode 
MsgBox objDOM.xml 

凡收藏有數據 - 但它創造這樣的結果:

<?xml version="1.0"?> 
<AKU_BA_GETMEDBAL_REQUEST xmlns="http://xmlns.aku.edu/ps/sas/schemas/AKU_BA_GETMEDBAL_REQUEST.V1"> 
    <AKU_BA_MRNO xmlns="">255-30-98</AKU_BA_MRNO> 
    <AKU_BA_SYS_LOCATION xmlns="">"karachi"</AKU_BA_SYS_LOCATION> 
    <AKU_BA_CASHLESS_LOCK xmlns="">"N"</AKU_BA_CASHLESS_LOCK> 
    <AKU_BA_GET_BALANCE xmlns="">"N"</AKU_BA_GET_BALANCE> 
</AKU_BA_GETMEDBAL_REQUEST> 

我能做些什麼,因爲它產生額外xmlns=""Ø n我不想要的每個人節點。有沒有其他方法可以做到這一點?

回答

1

此行爲是設計使然。只有在父節點引用了指定的默認名稱空間時纔會出現,並且會使用空字符串作爲用於創建子元素的DOMDocument.CreateNode()方法的namespaceURI參數。作爲namespaceURI參數提供的空字符串被視爲子元素的顯式默認名稱空間。

指定父元素的namespaceURI作爲DOMDocument.CreateNode()方法的namespaceURI參數,以指示父級的namespaceURI應用於子級,並防止爲子級元素生成空名稱空間聲明。

Set objPerson = objDOM.createNode(NODE_ELEMENT, AttributeCollection.Item(i), "urn-FooBar") 

如需進一步信息,並重現它看到MS Knowledge Base

+0

太感謝你了,你剛剛解決了我的問題:) –

+0

是我的榮幸!祝你有個愉快的夜晚 ... –