2

私はこれまで XML を扱ったことがなく、ネット上で物事をつなぎ合わせようとしても、どこにも行き着きません (そして、複数の方法で!)

誰かが Access フォームのボタンをクリックしたときに実行される vba モジュールをセットアップしようとしています。関数は渡された ISBN # を使用し、ISBNDB.com API を使用して書籍のさまざまな属性を返します。

API のアクセス文字列は既に取得しています: https://isbndb.com/api/books.xml?access_key=NSOY388Z&results=texts&index1=isbn&value1=0007102968

タイトル、作成者、発行者など、テーブルの 1 つに返されるデータを解析するためにデータを使用する方法を知る必要があります。

アクセス文字列によって返されるビジュアル ツリーは次のとおりです。

誰でもこれで私を助けることができますか? 言ったように、私はウェブからプロセスをつなぎ合わせようとし続けていますが、まったくどこにも行きません.

4

1 に答える 1

3

URL から XML DOM ドキュメントをロードし、そのメソッドを使用して、選択したノードからテキストにアクセスできます。次のサンプルでは、​​XPath を使用してノードを識別していますが、他の方法も使用できますgetElementsByTagNameSelectNodes; 等

このサンプルは遅延バインディングで作成しました。ドキュメントのメソッドとプロパティを調べながら、事前バインディングを使用して開発することをお勧めします... Microsoft XMLの参照を設定します。

Dim strUrl As String
Dim strXPathBase As String

' early binding requires reference to Microsoft XML
'Dim objDoc As MSXML2.DOMDocument
'Set objDoc = New MSXML2.DOMDocument

' late binding, no reference required
Dim objDoc As Object
Set objDoc = CreateObject("MSXML2.DOMDocument")

strUrl = "https://isbndb.com/api/books.xml" & _
    "?access_key=NSOY388Z&results=texts" & _
    "&index1=isbn&value1=0007102968"

objDoc.async = False
objDoc.Load strUrl

strXPathBase = "//ISBNdb/BookList/BookData/"
Debug.Print "Title: " & _
    objDoc.SelectSingleNode(strXPathBase & "Title").Text
Debug.Print "Publisher: " & _
    objDoc.SelectSingleNode(strXPathBase & "PublisherText").Text

Set objDoc = Nothing
于 2013-06-25T21:03:17.070 に答える