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。
請指導。
您最後一句的含義不明確。 _and需要傳統的xml_部分。 – jsotola
你的問題不清楚。請顯示ACTUAL輸出。 –
除了將'DbVersion'附加爲根元素的子元素而不是'ErdbVersion'的子元素之外,您的代碼似乎正在生成您想要生成的內容。 (把'objRootElem.appendChild objmembervar'改爲'objMemberElem.appendChild objmembervar'來解決這個問題。)你是什麼意思?'我不能在Model中創建一個結束標記''? – YowE3K