2

我以前从未使用过 XML,虽然我一直试图在网上拼凑一些东西,但我一无所获(而且方式不止一种!)

我正在尝试设置一个 vba 模块,该模块将在有人单击 Access 表单上的按钮时运行。该函数将使用传递的 ISBN# 并通过 ISBNDB.com API 返回图书的不同属性。

我已经获得了 API 的访问字符串:https ://isbndb.com/api/books.xml?access_key=NSOY388Z&results=texts&index1=isbn&value1=0007102968

我需要知道如何使用数据来解析返回到我的一个表中的内容,例如标题、作者、出版商等。

这是我的访问字符串返回的可视化树:

任何人都可以帮助我吗?如前所述,我一直试图从网络上拼凑这个过程,但绝对无处可去。

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 回答