回答編集履歴
1
具体的なXML例と、それに対応したVBA側コードを追記しました
answer
CHANGED
@@ -2,9 +2,36 @@
|
|
2
2
|
|
3
3
|
webサーバーはFuelPHPにてRestコントローラーを使ってXML出力するようにしました。
|
4
4
|
Model_CrudクラスでDB問い合わせ結果を配列で取得したものを、XML出力出来ました。
|
5
|
+
例えばこんな感じ:
|
6
|
+
```lang-XML
|
7
|
+
<result>ok</result>
|
8
|
+
<content>
|
9
|
+
<item>
|
10
|
+
<field_1>foo</field_1>
|
11
|
+
<field_2>bar</field_2>
|
12
|
+
(略)
|
13
|
+
</item>
|
14
|
+
<item>
|
15
|
+
<field_1>baz</field_1>
|
16
|
+
<field_2>qux</field_2>
|
17
|
+
(略)
|
18
|
+
</item>
|
19
|
+
(略)
|
20
|
+
</content>
|
21
|
+
```
|
5
22
|
|
6
23
|
MS-Access側は特に変えていません。
|
7
24
|
XPath式を使ってselectNodesメソッドにて目標要素を特定してデータ抽出できています。
|
8
25
|
|
26
|
+
```lang-VBA
|
27
|
+
rownum = 1
|
28
|
+
Do Until xdoc.selectNodes("//content/item[" & CStr(rownum) & "]/field_1").Length = 0
|
29
|
+
field_1 = xdoc.selectNodes("//content/item[" & CStr(rownum) & "]/field_1").Item(0).Text
|
30
|
+
field_2 = xdoc.selectNodes("//content/item[" & CStr(rownum) & "]/field_2").Item(0).Text
|
31
|
+
(略)
|
32
|
+
rownum = rownum + 1
|
33
|
+
Loop
|
34
|
+
```
|
35
|
+
|
9
36
|
webサーバーの応答のデバッグについては、応答テキストをXML解釈できるエディタにコピペして、
|
10
37
|
意図した構造になっているかをチェックすれば良さそうです。
|