0
私は自分の事務用のXMLファイルを作成しています。 私はxbaをvbaの自己閉じタグで作成する
<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>
を以下のようにXMLの構造を必要とし、私のコードは次のとおりです。
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を必要とします。
ご案内しています。
最後の文の意味が明確ではありません。 _そして従来のxml_部分が必要です。 – jsotola
あなたの質問は明確ではありません。 ACTUALの出力を表示してください。 –
'ErdbVersion'の子ではなくルート要素の子として' DbVersion'を付ける以外に、あなたのコードはあなたが作りたいものを作り出しているようです。 ( 'objRootElem.appendChild objmembervar'を' objMemberElem.appendChild objmembervar'に変更してください。) '' Model "'で終了タグを作成できません。 – YowE3K