
お世話になっております。
Access VBAでRSSを読み込み指定した要素の値を取得したいのですが、ググってもよく分からず
どのようにすれば良いのか分からないので教えてください。
下記XMLの「item」の値を取得しフィールドへ値を挿入したいのです。
item_title1を読み込んだ後に次に別のレコードとしてitem_title2を読みたいといった形です。
初心者で言葉足らずの部分があると思いますが、ご教授の程よろしくお願いします。
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/content/title")
rs!title = node.Text
rs.Update
rs.Close
End Sub
取込元XML(RSS)ソース
<?xml version="1.0"?>
<rss version="2.0">
<content>
<title>test/title>
<language>ja</language>
<item>
<title>item_title1</title>
</item>
<item>
<title>item_title2</title>
</item>
</content>
</rss>
No.1ベストアンサー
- 回答日時:
とりあえず、
item_title1
item_title2
を取得するところのみです。
時間が無いのでエクセルで試しています。ご参考まで。
Sub readXml()
Dim XDoc As MSXML2.DOMDocument
Dim i As Long
Dim root As IXMLDOMElement
Dim retNode As IXMLDOMNodeList
Set XDoc = New MSXML2.DOMDocument
If XDoc.Load(GetDesktopPath & "\" & "test.xml") = False Then
MsgBox "読み込み失敗"
Exit Sub
End If
Set root = XDoc.DocumentElement
Set retNode = root.SelectNodes("/rss/content/item/title")
For i = 0 To retNode.Length - 1
Debug.Print retNode.Item(i).Text
Next i
Set XDoc = Nothing
End Sub
Private Function GetDesktopPath() As String
Dim wScriptHost As Object, strInitDir As String
Set wScriptHost = CreateObject("Wscript.Shell")
GetDesktopPath = wScriptHost.SpecialFolders("Desktop")
Set wScriptHost = Nothing
End Function
この回答への補足
ご回答いただきありがとうございます。
いただいたソースをもとにAccess VBAで実行してみましたが、イミデイトのエラーが出てしまっています。
どのような原因&改善策が考えられるでしょうか?
よろしければ、教えてください。
よろしくお願いします。
-2147024809 / パラメーターが間違っています。
行 :0 , カラム :0
内容 :
ファイル(URL) :
ファイル先頭からの位置 :0
No.2
- 回答日時:
#1です。
当方Access2010ですが、単純に標準モジュールにコードをコピペし、Microsoft XML v6.0に参照設定し、XMLをデスクトップに置いて実行すると、
item_title1
item_title2
が取得できました。質問者様のAccessのバージョンが不明ですが、Accessの機能は使っていないので、どのバージョンでも変わらないと思います。
エラーNo. -2147024809を検索してみましたが、それらしい情報がヒットしません。
簡単なモデルで試してみて、うまく行ったら肉付けをしていく事をお勧めします。
ご回答いただきありがとうございます。
何度か試したところ突然できるようになりました。
原因は不明です。
ご回答いただきありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- JavaScript 【jquery】EasyUIのSubGridにMySQLのテーブルデータを表示&編集にしたい 5 2022/05/02 13:10
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/07 08:37
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
simplexml_load_file() のかわ...
-
ルート要素ノードが2個ある場合?
-
CPUの考え方を教えてください ...
-
あるノードリストに、特定の名...
-
vbsのDOMDocumentで要素のText...
-
東芝のDynabookなのですがアン...
-
C言語 TreeViewのノードをプロ...
-
ToolStripMenuItemの選択(VB)
-
XMLで要素が記述された順番に意...
-
同じタグ名の項目取得
-
SNMP リンクダウンとノードダ...
-
バッチファイルでテキストファ...
-
Excel-VBAでXMLの複数ノードの...
-
このエラー、何とかなりません...
-
XSL内でJavaScriptを記述し、Ja...
-
XMLファイル内のデータ(値)を変...
-
コンテキストメニュークリック...
-
複数のマックPCによる数値計算...
-
php xml 読み込んで 一部のみ...
-
メモリのセクションに関して
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTTPステータス 404 - There is...
-
Access VBAでXMLが読み込めない
-
excelにてweb関数を使い、webデ...
-
IEが表示できないXML
-
127.0.0.1とlocalhost
-
XMLパースエラー
-
RSS2.0の書き方
-
名前空間の宣言の書き方
-
Access VBAで指定した要素を読...
-
CPUの考え方を教えてください ...
-
SNMP リンクダウンとノードダ...
-
東芝のDynabookなのですがアン...
-
XMLで要素が記述された順番に意...
-
ルート要素ノードが2個ある場合?
-
バッチファイルでテキストファ...
-
昔Winnyってありましたけど、あ...
-
XML、XSLTの適応エラー(IEから...
-
複数のマックPCによる数値計算...
-
あるノードリストに、特定の名...
-
2分探索木の高さを求めるプロ...
おすすめ情報