【お題】引っかけ問題(締め切り10月27日(日)23時)

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

A 回答 (2件)

前の方が書いてる通り


<rss version="2.0">

<rss version="2.0" xmlns:a="http://xxxx/">
でなくてはいけません。

一度、XMLファイルを読み込んで
・<rss version="2.0">を、<rss version="2.0" xmlns:a="http://xxxx/">に置き換える。
・<xx:xx>のタグを別のもに置き換える。
・<xx:xx>のタグの:を取り除く。

これXMLじゃないんですけどと、XML提供元に文句をいう。

などです。
    • good
    • 1
この回答へのお礼

ご回答いただきありがとうございます。
「・<xx:xx>のタグの:を取り除く。」の方向で対処したいと思います。
お忙しい中ご回答いただきありがとうございました。

お礼日時:2013/08/22 16:33

名前空間aが定義されていません。


a:bのaは名前空間のつもりで書いてますか?
<rss version="2.0">

<rss version="2.0" xmlns:a="http://xxxx/">
とかしないとまずいのでは?

この回答への補足

ご回答いただきありがとうございます。
読み込み元のXMLは、別のところから提供されているのでどのような意図でこのように書いているのか分かりません。
XMLが間違っているということで大丈夫でしょうか?
VBA側で読み込み時にこのタグを読み込まないようにするなどVBA側で対応できる方法はありますでしょうか?

補足日時:2013/08/16 19:16
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報