2017-08-13 5 views
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を必要とします。

ご案内しています。

+0

最後の文の意味が明確ではありません。 _そして従来のxml_部分が必要です。 – jsotola

+0

あなたの質問は明確ではありません。 ACTUALの出力を表示してください。 –

+0

'ErdbVersion'の子ではなくルート要素の子として' DbVersion'を付ける以外に、あなたのコードはあなたが作りたいものを作り出しているようです。 ( 'objRootElem.appendChild objmembervar'を' objMemberElem.appendChild objmembervar'に変更してください。) '' Model "'で終了タグを作成できません。 – YowE3K

答えて

0

閉じるタグを追加する方法が見つかりました。 xml要素のtextプロパティを ""と設定しました

xmlelement.text= " " 
関連する問題