VBでXMLファイル作成時に「!--」でエラーが発生する問題について

このQ&Aのポイント
  • VBでXMLファイル作成時に「!--」の文字でエラーが発生します。どのように対処すれば良いでしょうか?
  • VB6でXMLファイルを作成している際に、コメントを追加しようとすると「!--」の文字でエラーが発生します。解決方法を教えてください。
  • VBでXMLファイルを作成中、コメント追加時に「!--」の文字でエラーが生じます。どのように修正すればよいでしょうか?
回答を見る
  • ベストアンサー

VBでXMLファイルを作成していますが、エラーになります

すみません、教えてください。 VB6でXMLファイルを作成しています。コメントを入れようとすると"!--"の文字でこけます。どうしたらいいのでしょうか?コーディングは以下のようにしてます。 Dim xmlDoc As New MSXML2.DOMDocument40 'XMLドキュメント Dim xmlPI As IXMLDOMProcessingInstruction 'XML宣言 Dim node(3) As IXMLDOMNode '要素 garFNRpt = sFPass + "Sousinfile\DATA\" + sFilemei + ".xml" 'XML宣言を追加します。 Set xmlPI = xmlDoc.appendChild(xmlDoc.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8""")) Set node(1) = xmlDoc.appendChild(xmlDoc.createNode(NODE_ELEMENT, """!--""kml基本情報", "")) よろしくお願いします

  • m9099
  • お礼率100% (13/13)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

コメントなら, ・NODE_ELEMENTのかわりにNODE_COMMENTを使う ・createNodeメソッドではなくcreateCommentメソッドを使う のどちらかではないでしょうか。

m9099
質問者

お礼

そうですね。コメントならNODE_COMMENTですね。 それで通りました。 ありがとうございました。

関連するQ&A

  • VBでXMLファイルを作ると xmlns= が・・・

    VB6でXMLを作成しています。 Dim xmlDoc As New MSXML2.DOMDocument40 'XMLドキュメント Dim xmlPI As IXMLDOMProcessingInstruction 'XML宣言 Dim node(7) As IXMLDOMNode '要素 Set xmlPI = xmlDoc.appendChild(xmlDoc.createProcessingInstruction("xml", "version= ""1.0"" encoding= ""Shift_JIS"" standalone= ""no""")) Set node(1) = xmlDoc.appendChild(xmlDoc.createNode(NODE_ELEMENT, "kml", "")) Set node(2) = node(1).appendChild(xmlDoc.createNode(NODE_ELEMENT, "kmlHeader", "")) Set node(3) = node(2).appendChild(xmlDoc.createNode(NODE_ELEMENT, "kml_DTD", " kml_Version= 2.8"" kml_FileName=""../DTD/HYB01.dtd")) 以下省略 すると <kml_DTD xmlns="kml_Version= 2.8" kml_FileName="../DTD/HYB01.dtd" /> "xmlns=" はどうすれば消えますか?お願いします。

  • vb6 XMLファイル出力について<S></S>

    vb6にてXMLファイル出力のプログラムを作成しています。 XMLファイル内容 <?xml version="1.0" encoding="UTF-8"?> <root> <key>AA</key> <string>aa</string> <key>BB</key> <string/> </root> 上記の<string/>の部分を<string></string>のように出力したいのですが、 どうしても上手くいきません。 下記にソースを記載します。 何か少しでもお分かりになる情報がありましたらご教授願いします。 よろしくお願いします。 Dim xmlDoc As MSXML2.DOMDocument 'XMLドキュメント Dim xmlPI As IXMLDOMProcessingInstruction 'XML宣言 Dim node(50) As IXMLDOMNode '要素 Dim attr As MSXML2.IXMLDOMAttribute '属性 'XMLドキュメントを作成 Set xmlDoc = New MSXML2.DOMDocument 'XML宣言を追加 Set xmlPI = xmlDoc.appendChild(xmlDoc.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8""")) '<root>要素を追加 Set node(1) = xmlDoc.appendChild(xmlDoc.createNode(NODE_ELEMENT, "root", "")) '<key>要素を追加 Set node(2) = node(1).appendChild(xmlDoc.createNode(NODE_ELEMENT, "key", "")) node(2).Text = "AA" '<string>要素を追加 Set node(3) = node(1).appendChild(xmlDoc.createNode(NODE_ELEMENT, "string", "")) node(3).Text = "aa" '<key>要素を追加 Set node(4) = node(1).appendChild(xmlDoc.createNode(NODE_ELEMENT, "key", "")) node(4).Text = "BB" '<string>要素を追加 Set node(5) = node(1).appendChild(xmlDoc.createNode(NODE_ELEMENT, "string", "")) node(5).Text = "" 'XMLドキュメントの出力 Dim strXMLFile As String strXMLFile = Format(Date, "yyyymmdd") & Format(Time, "hhmmss") xmlDoc.save ("C:TEST\TEST.xml") '終了処理 If Not xmlDoc Is Nothing Then Set xmlDoc = Nothing If Not xmlPI Is Nothing Then Set xmlPI = Nothing

  • VB6でXMLを作成しているのですがエラーが出ます

    VB6でXML作成のプログラムを作ったのですが、読み取り専用のノードを編集しようとしましたのメッセージボックスが表示されます。 どなたかどこが悪いのか、ご教授願います。 ソースコードは以下の通りです。 Dim xmlDoc As MSXML.DOMDocument 'XMLドキュメント Dim xmlPI As IXMLDOMProcessingInstruction 'XML宣言 Dim node(3) As IXMLDOMNode '要素 Dim attr As MSXML.IXMLDOMAttribute '属性 Dim newText Set xmlDoc = New MSXML.DOMDocument 'XMLドキュメントを作成します。 'XML宣言を追加します。 Set xmlPI = xmlDoc.appendChild(xmlDoc.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8""")) '<ClinicalDocument>要素を追加します。 Set node(1) = xmlDoc.createElement("ClinicalDocument") Call xmlDoc.appendChild(node(1)) 'xmlns:xsi属性を追加します。 Set attr = xmlDoc.createAttribute("xmlns:xsi") Call node(1).Attributes.setNamedItem(attr) attr.nodeValue = "http://www.w3.org/2001/XMLSchema-instance" ''ここでエラーが出ます '<Customer>要素を追加します。 Set node(2) = xmlDoc.createElement("Customer") Call node(1).appendChild(node(2)) Call node(2).appendChild(xmlDoc.createTextNode(vbNewLine)) 'id属性を追加します。 Set attr = xmlDoc.createAttribute("id") Call node(2).Attributes.setNamedItem(attr) attr.nodeValue = "1" '<Name>要素を追加します。 Set node(3) = xmlDoc.createElement("Name") Call node(2).appendChild(node(3)) Set newText = xmlDoc.createTextNode("Jhon") Call node(3).appendChild(newText) 'XMLドキュメントの出力 xmlDoc.save (App.Path & "\customer.xml")

  • VBAでXMLを出力するプログラムを作成する際の名前空間接頭辞の付与の仕方について

    今、Excel付属のVBAを使用して、XMLを作成するプログラムを作成しております。 その際、名前空間(及び接頭辞)を付与したいのですが、方法が分からず苦慮しております。 VB.NET等での方法はわかったのですが、職場の開発環境上、VBAでなんとか対応したいところです。 もし何かご存知の方、いらっしゃいましたら、どうか教えていただきたく、よろしくお願いいたします。 ===作成したいXML=== <?xml version="1.0" encoding="Shift_JIS" ?> - <Root> - <YOUSO xmlns:BBB="http://aaa.aa.aaa"> <YOSO2>AAAAAAA</YOSO2> </YOUSO> </Root> ===現在このようなXMLになってしまっております。=== <?xml version="1.0" encoding="Shift_JIS" ?> - <Root> - <YOUSO xmlns="http://aaa.aa.aaa"> <YOSO2 xmlns="">AAAAAAA</YOSO2> </YOUSO> </Root> ===作成したコード=== Sub TEST() Dim xmlDoc As MSXML2.DOMDocument Dim xmlPI As IXMLDOMProcessingInstruction Dim node(3) As IXMLDOMNode Set xmlDoc = New MSXML2.DOMDocument 'XML宣言 Set xmlPI = xmlDoc.appendChild(xmlDoc.createProcessingInstruction("xml", "version=""1.0"" encoding=""Shift_JIS""")) '<Root>要素 Set node(1) = xmlDoc.appendChild(xmlDoc.createNode(NODE_ELEMENT, "Root", "")) '<YOSO1>要素 Set node(2) = node(1).appendChild(xmlDoc.createNode(NODE_ELEMENT, "YOUSO", "http://aaa.aa.aaa")) '<YOUSO2>要素 Set node(3) = node(2).appendChild(xmlDoc.createNode(NODE_ELEMENT, "YOUSO2", "")) node(3).Text = "AAAAAAA" 'XMLドキュメントの出力 xmlDoc.Save ("customer.xml") End Sub ============================ よろしくお願いいたします。

  • XMLの要素の内容の中に要素

    VisualBasic6.0にて、XMLを作成するプログラムを作っています。 XMLの作成、編集はMSXMLを使用しており、編集保存はできたのですが、下記のような要素の出力の仕方がわかりません。 <Node1>  あいうえお  <Node1-1>abcde</Node1-1>  かきくけこ </Node1> このように要素の文字列の途中に子要素を作成したいです。 「Node1」要素に、子要素「Node1-1」を追加するサンプルです。 Cドライブ直下に以下の内容のXMLファイル「test.xml」を作成 <?xml version="1.0" encoding="shift_jis"?> <Node1> </Node1> VB6にて、参照設定に「Microsoft XML V6.0」を追加し以下のコードを作成。 Private Sub Command1_Click() Dim xDoc As MSXML2.DOMDocument Set xDoc = New MSXML2.DOMDocument Dim node As IXMLDOMNodeList Dim Addnode As IXMLDOMNode Dim obj As IXMLDOMNode If xDoc.Load("C:\test.xml") Then Set node = xDoc.documentElement.selectNodes("/Node1") For Each obj In node Set Addnode = obj.appendChild(xDoc.createNode(NODE_ELEMENT, "Node1-1", "")) Addnode.Text = "abcde" Next xDoc.save ("C:\test.xml") End If Set xDoc = Nothing End Sub

  • VB2005でXMLのテキストデータをXMLデータにするには?

    VB2005の初心者です。 タグ付きのXMLのテキストデータを読み込んで、項目ごとにDBに登録したいのですが、やり方が分りません。 テキストデータをXMLデータ、もしくはノード、もしくはデータセット型に変換しなければならないと思うのですが、そのやり方を教えていただきたいです。 ちなみに、XMLデータをテキストデータにするのは下記のとおりでできました。この strText を逆にXMLデータに変換したいです。 Dim xmlDoc As MSXML2.DOMDocument = New MSXML2.DOMDocument Dim strText As String xmlDoc.PreserveWhitespace = True xmlDoc.Load("C:XMLData.xml") strText = xmlDoc.xml 何かヒントでも良いので、たくさんの方の知恵をお借りしたいです。

  • DOCUMENT行の書き出しについて-VBAで

    DOCUMENT行の書き出しについて(http://okwave.jp/qa/q4495749.html)の回答1を参考にしてエクセルのVBAでやってみたが、エラーが出てしまいます。 どうすればよいでしょうか? Windows XP SP3 Excel2003 SP3 参照設定は以下のもので試してみましたが、エラーになります。 Microsoft XML,v3.0 Microsoft XML,v6.0 --------------------------------------------------------------- Dim xmlDoc As MSXML2.DOMDocument Dim xmlPI As IXMLDOMProcessingInstruction Dim xmlDoctype As XmlDocumentType '←ここでコンパイルエラー 'エラーメッセージ 'コンパイルエラー: 'ユーザー定義型は定義されていません。 Set xmlDoc = New MSXML2.DOMDocument Set xmlPI = xmlDoc.appendChild(xmlDoc.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8""")) Set xmlDoctype = xmlDoc.appendChild(xmlDoc.CreateDocumentType("BookList", "", "Title.dtd", "")) xmlDoc.Save "C:\Books\Title.xml" ---------------------------------------------------------------

    • ベストアンサー
    • XML
  • XMLデータをパーサーをかけてテキストデータにするには?

    VB2005の初心者です。 XMLファイルを読み込んで、パーサーをかけてテキストデータにしたいのですが、やり方が分りません。 (パーサーを使わずにテキストデータにすることはできます。) ご存知の方は、ヒントでも良いので教えていただきたいです。 仕事で行き詰っているため、たくさんの方の情報をいただけると幸いです。 下記は、パーサーを使わないやり方です。 Dim xmlDoc As XmlDocument = New XmlDocument Dim strText As String xmlDoc.PreserveWhitespace = True xmlDoc.Load("C:\XMLData.xml") strText = xmldoc.OuterXml パーサーを使う場合、下記のようになると思うのですが、 どのようにテキストデータにすれば良いのか分りません。 (OuterXmlが使えません。) Dim xmlDoc As MSXML2.DOMDocument = New MSXML2.DOMDocument Dim strText As String xmlDoc.PreserveWhitespace = True xmlDoc.Load("C:\XMLData.xml") よろしくお願い致します。

  • Load出来ないXMLファイル

    いつもお世話になっております。 標題の件なのですが、VB.NETでXMLファイルから設定情報(Oracleのユーザー名やパスワード等)を取得するプログラムを作成しております。 以下がそのソースコードになります。 ※VB.NET初心者なので、ネットにあったサンプルコードを参考にしました。 --------------------------------------------------   Public Function Setting_init() As Boolean     Dim xmlDoc As New DOMDocument30     Dim Node As IXMLDOMNode     Dim myErr     Dim FileName As String     FileName = "ini.xml"     Const PATH_DTS = "//Settings/Database/DataSource"     Const PATH_UID = "//Settings/Database/UserId"     Const PATH_PSW = "//Settings/Database/Password"     Const PATH_FRM = "//Settings/Path/Form"     Const PATH_OUT = "//Settings/Path/Output"     xmlDoc.async = False     xmlDoc.resolveExternals = False     xmlDoc.load(FileName)          If (xmlDoc.parseError.errorCode <> 0) Then       myErr = xmlDoc.parseError       Setting_init = False     Else       xmlDoc.setProperty("SelectionLanguage", "XPath")       Node = xmlDoc.selectSingleNode(PATH_DTS)       G_DataSorce = Node.text       Node = xmlDoc.selectSingleNode(PATH_UID)       G_UsrId = Node.text       Node = xmlDoc.selectSingleNode(PATH_PSW)       G_PassWord = Node.text       Node = xmlDoc.selectSingleNode(PATH_FRM)       G_FormPath = Node.text       Node = xmlDoc.selectSingleNode(PATH_OUT)       G_OutPath = Node.text       Setting_init = True     End If   End Function -------------------------------------------------- ちなみにXMLファイルの内容は -------------------------------------------------- <?xml version="1.0" encoding="utf-8"?> <Settings>  <Database>   <DataSource>Oracleサーバー名</DataSource>   <UserId>ユーザー名</UserId>   <Password>パスワード</Password>  </Database>  <Path>   <Form>フォームが存在するフォルダパス</Form>   <Output>ファイルを出力するフォルダパス</Output>  </Path> </Settings> -------------------------------------------------- となっております。 お客様の環境で実行したら、このプログラムのxmlDoc.load(FileName)の箇所でエラーが出ました。 読み取るXMLファイル内の漢字を除いたら実行できたみたいなのですが、 開発環境ではXMLファイルに漢字を含んでいても問題なくload出来るのです。 端末に依存するのでしょうか? それともこの文字があったらダメというのがあるのでしょうか? 何か情報があればご教示願います。 よろしくお願い致します。

  • Access VBAでXMLが読み込めない

    Access2013でXMLファイルを読み込むVBAを作成しています。 VBA実行時に「実行時エラー '-2147467259(80004005)': 未宣言の名前空間の接頭語を参照します :'a'」と表示されてしまい読み込むことができません。 色々調べた結果、下記のページが今回のエラーに関係ありそうということは分かったのですが、VBAのソースをどのように書き換えれば良いか分からず苦戦しております。 http://support.microsoft.com/kb/280457/ja 解決法をご存じ方がいらっしゃいましたらご教授いただければと思います。 よろしくお願いします。 --------------以下ソース-------------- XMLファイル <?xml version="1.0"?> <rss version="2.0"> <a:b>0</a:b> <title>test</title> </rss> VBA本文 Sub readXml() Dim XDoc As MSXML2.DOMDocument Dim node As MSXML2.IXMLDOMNode Set XDoc = New MSXML2.DOMDocument If XDoc.Load(CurrentProject.Path & "\" & "a.xml") = False Then MsgBox "読み込み失敗" Exit Sub End If Dim rs As New ADODB.Recordset rs.Open "test", CurrentProject.Connection, , adLockOptimistic rs.AddNew    For Each node In XDoc.selectNodes("rss/title") rs!title = node.Text rs.Update rs.Close End Sub

専門家に質問してみよう