新しく質問する

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

役に立った:0件
  • 質問者:m9099
  • 投稿日時:2008/01/31 13:47
  • 困り度:すぐに回答が欲しいです
  • 友達に紹介
  • ブログに書く
  • 教えて!gooお気に入り

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=" はどうすれば消えますか?お願いします。

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:0件)
  • 参考になった:0件

No.1ベストアンサー20pt

  • 回答者:redfox63
  • 回答日時:2008/01/31 14:31

createNodeの第3引数はネームスペースになるのでここに""以外を与えると無条件で『xmlns=』がついてしまうと思います
そこで一度 IXMLDOMElementにNode(3)を代入してこれのsetAttributeを使って属性データを作成すればいいのではないでしょうか

dim tmp as IXMLDOMElement
Set Node(3) = node(2).appendChild(xmlDoc.createNode(NODE_ELEMENT, "kml_DTD", ""))
Set tmp = Node(3)
tmp.setAttribute "kml_version", "2.8"
tmp.setAttribute "kml_FileName", "../DTD/HYB01.dtd"
Set Node(3) = tmp

といった具合です …

通報する

この回答へのお礼

すごいです。教えていただいたとおりにしたら、希望通りにできました。本当にありがとうございました。

  
このQ&Aは役に立ちましたか?(役に立った:0件)

このページのトップへ

Facebook公式ページ

公式Twitter