2017-08-13 34 views
0

我正在爲我的辦公室工作建立一個xml文件。 我需要XML的結構是如下在vba中創建xml自我關閉標記

<MultiBlock xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="x- 
schema:ConfigFileSchema.xml"> 
<Model> 
<ModelName type="AlarmGroup">Alarm Groups</ModelName> 
</Model> 
<ErdbVersion> 
<DbVersion>12.0</DbVersion> 
</ErdbVersion> 
</MultiBlock> 

和我的代碼是:

Sub create_alarmgroup() 
Dim objDom As DOMDocument 
Dim objRootElem As IXMLDOMElement  
Dim objMemberElem As IXMLDOMElement  
Dim objmembervar As IXMLDOMElement  
Dim objmemberatt As IXMLDOMAttribute  
Const QUOTE_MARK As Integer = 34 
Dim xmlVersion As MSXML2.IXMLDOMProcessingInstruction 
Set objDom = New DOMDocument 

Set xmlVersion = objDom.createProcessingInstruction("xml", "version=" & 
Chr(QUOTE_MARK) & "1.0" & Chr(QUOTE_MARK)) 
objDom.appendChild xmlVersion 

'Creates root element 
Set objRootElem = objDom.createElement("MultiBlock") 
objRootElem.setAttribute "xmlns", "x-schema:ConfigFileSchema.xml" 

objRootElem.setAttribute "xmlns:xsd", "http://www.w3.org/2001/XMLSchema" 

objRootElem.setAttribute "xmlns:xsi", "http://www.w3.org/2001/XMLSchema- 
instance" 
objDom.appendChild objRootElem 

'==========ROOT ELEMENT END================ 

'Create Member element - MODEL 
Set objMemberElem = objDom.createElement("Model") 
objMemberElem.Text = " " 

objRootElem.appendChild objMemberElem 

Set objmembervar = objDom.createElement("ModelName") 
Set objmemberatt = objDom.createAttribute("type") 
objmemberatt.NodeValue = "AlarmGroup" 
objmembervar.setAttributeNode objmemberatt 
objmembervar.Text = "Alarm Groups" 

objMemberElem.appendChild objmembervar 

Set objMemberElem = objDom.createElement("ErdbVersion") 
objMemberElem.Text = " " 
objRootElem.appendChild objMemberElem 
Set objmembervar = objDom.createElement("DbVersion") 
objmembervar.Text = "12.0" 
objRootElem.appendChild objmembervar 


'Save to disk 
Cells(5, 1).Select 
objDom.Save (ThisWorkbook.Path & "\srcvariables.cnf.xml") 

End Sub 

但我不能夠在「模型」,「ErdbVersion」節點創建關閉標籤。我不想使用自我關閉標籤爲我的XML和需要傳統的XML。

請指導。

+0

您最後一句的含義不明確。 _and需要傳統的xml_部分。 – jsotola

+0

你的問題不清楚。請顯示ACTUAL輸出。 –

+0

除了將'DbVersion'附加爲根元素的子元素而不是'ErdbVersion'的子元素之外,您的代碼似乎正在生成您想要生成的內容。 (把'objRootElem.appendChild objmembervar'改爲'objMemberElem.appendChild objmembervar'來解決這個問題。)你是什麼意思?'我不能在Model中創建一個結束標記''? – YowE3K

回答

0

我找到了添加結束標記的方法。 我已將xml元素的文本屬性設置爲「」

xmlelement.text= " " 
相關問題