List 6-41 XMLパーサーを使ったXML文字列の作成
  1: Function GetCustomers3() As String
  2:     Dim objXMLdoc As MSXML.DOMDocument
  3:     Dim objXMLpi As MSXML.IXMLDOMProcessingInstruction
  4:     Dim objXMLroot As MSXML.IXMLDOMElement
  5:     Dim objXMLCustomer As MSXML.IXMLDOMElement
  6:     Dim objXMLCustomerName As MSXML.IXMLDOMElement
  7:     Dim objXMLTelephone As MSXML.IXMLDOMElement
  8:     Dim objXMLFax As MSXML.IXMLDOMElement
  9:     
 10:     ' XMLオブジェクトの実体化
 11:     Set objXMLdoc = CreateObject("Microsoft.XMLDOM")
 12:     
 13:     ' プロセッシングインストラクションの作成
 14:     Set objXMLpi = objXMLdoc.createProcessingInstruction("xml", _
                            "version=""1.0"" encoding=""Shift_JIS""")
 15:    
 16:     ' ルートエレメントの作成
 17:     Set objXMLroot = objXMLdoc.createElement("CUSTOMERS")
 18:     objXMLdoc.appendChild objXMLroot
 19:    
 20:     ' 1行分のデータを構築
 21:     Set objXMLCustomer = objXMLdoc.createElement("CUSTOMER")
 22:     Set objXMLCustomerName = objXMLdoc.createElement("CUSTOMERNAME")
 23:     objXMLCustomerName.appendChild _
             objXMLdoc.createTextNode("ソフトバンクパブリッシング")
 24:     Set objXMLTelephone = objXMLdoc.createElement("TELEPHONE")
 25:     objXMLTelephone.appendChild objXMLdoc.createTextNode("03-1234-5678")
 26:     Set objXMLFax = objXMLdoc.createElement("FAX")
 27:     objXMLFax.appendChild objXMLdoc.createTextNode("03-1234-5679")
 28:     
 29:     objXMLCustomer.appendChild objXMLCustomerName
 30:     objXMLCustomer.appendChild objXMLTelephone
 31:     objXMLCustomer.appendChild objXMLFax
 32:     
 33:     ' ルートエレメントの配下にデータを追加する
 34:     objXMLroot.appendChild objXMLCustomer
 35:     
 36:     ' 1行分のデータを構築
 37:     Set objXMLCustomer = objXMLdoc.createElement("CUSTOMER")
 38:     Set objXMLCustomerName = objXMLdoc.createElement("CUSTOMERNAME")
 39:     objXMLCustomerName.appendChild objXMLdoc.createTextNode("マイクロソフト")
 40:     Set objXMLTelephone = objXMLdoc.createElement("TELEPHONE")
 41:     objXMLTelephone.appendChild objXMLdoc.createTextNode("03-2345-6789")
 42:     Set objXMLFax = objXMLdoc.createElement("FAX")
 43:     objXMLFax.appendChild objXMLdoc.createTextNode("03-2345-6790")
 44:     
 45:     objXMLCustomer.appendChild objXMLCustomerName
 46:     objXMLCustomer.appendChild objXMLTelephone
 47:     objXMLCustomer.appendChild objXMLFax
 48:      
 49:     ' ルートエレメントの配下にデータを追加する
 50:     objXMLroot.appendChild objXMLCustomer
 51:     
 52:     ' 作成したXMLの文字列を戻り値として設定
 53:     GetCustomers3 = objXMLdoc.xml
 54:     
 55:     ' オブジェクトの解放
 56:     Set objXMLFax = Nothing
 57:     Set objXMLTelephone = Nothing
 58:     Set objXMLCustomerName = Nothing
 59:     Set objXMLCustomer = Nothing
 60:     Set objXMLroot = Nothing
 61:     Set objXMLdoc = Nothing
 62:     Set objXMLpi = Nothing
 63: End Function