
今、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
============================
よろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
勘弁して欲しいよね >MSXML2
できない、とか、DOM 2 Core 対応してないからやりたくないって返す(下手に対応してあげちゃうと、そっちに安住されちゃうんだもん) > 職場
=======以下、あくまでやることを前提とせず、あくまで好奇心で実行してみたコード====================
Option Explicit
Sub TEST()
Dim xmlDoc As MSXML2.DOMDocument60
Dim element As MSXML2.IXMLDOMElement
Dim attr As MSXML2.IXMLDOMAttribute
Set xmlDoc = New MSXML2.DOMDocument60
Set element = xmlDoc.createElement("aaa")
xmlDoc.appendChild element
Set attr = xmlDoc.createNode(2, "xmlns:BB", "http://www.w3.org/2000/xmlns/")
attr.Text = "http://aaa.aa.aaa"
'ここからは無視
element.setAttribute "xmlns:AA", "http://xxx.com"
element.setAttributeNode attr
xmlDoc.Save ("C:\namespace.xml")
End Sub
'==============結果=================
<aaa xmlns:AA="http://xxx.com" xmlns:BB="http://aaa.aa.aaa"/>
MSXML2がサポートしてないであろうDOM 2 Coreにはちゃんと
http://www.w3.org/TR/DOM-Level-2-Core/core.html# …
A new Attr object with the nodeName attribute set to name, 【and localName, prefix, and namespaceURI set to null.】 The value of the attribute is the empty string.
って書いてあるんだけどなあ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでXML文書のある特定タグ以...
-
XPathで途中に名前空間が設定さ...
-
ルート要素ノードが2個ある場合?
-
TreeViewコントロールについて
-
TreeVIewのノード名を編集する...
-
XML::LibXMLのfindnodes()で、...
-
XMLで要素が記述された順番に意...
-
VBA コードを中断するには?
-
4バイトを10進数に変換する方法
-
XML、XSLTの適応エラー(IEから...
-
東芝のDynabookなのですがアン...
-
HTTPステータス 404 - There is...
-
各ノードの行数取得
-
Listからのnull要素を削除方法は?
-
ツリーでのアイコンの設定
-
IE7とDOCTYPE宣言について
-
ノードとは
-
TreeViewのノードの編集結果が...
-
VB 6.0でtimerをとselect case...
-
C#でTreeViewのCheckBoxのサイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
XPathで途中に名前空間が設定さ...
-
VBAでXMLを出力するプログラム...
-
XMLファイル内のデータ(値)を変...
-
VBAでXML文書のある特定タグ以...
-
VB6でXMLを作成しているのです...
-
XMLの要素の内容の中に要素
-
C#でXMLファイルの情報にアクセ...
-
xmlでコンテンツを複数表示させ...
-
LoadCML
-
C# もしくはVB
-
指定した属性値を持つ要素に追...
-
XMLをエクセルに取り込むマクロ...
-
XMLDocumentでスキーマを無視し...
-
XPATHについての質問です。以下...
-
XMLをXSLTで変換するとき、XML...
-
C# GetElementsByTagNameで取得...
-
C#でXMLの読み取り書き取りにつ...
-
XML文のid属性とclass属性について
-
CPUの考え方を教えてください ...
-
東芝のDynabookなのですがアン...
おすすめ情報