我以前从未使用过XML,而且我一直试图在网上拼凑一些东西,但我无处可去(并且不止一种方式!)
我正在尝试设置一个vba模块,当有人单击Access窗体上的按钮时,该模块将运行。该函数将使用传递的ISBN#和ISBNDB.com API返回书籍的不同属性。
我已经获得了API的访问字符串: https://isbndb.com/api/books.xml?access_key=NSOY388Z&results=texts&index1=isbn&value1=0007102968
我需要知道如何使用数据来解析返回到我的某个表中的内容,例如Title,Author,Publisher等。
以下是我的访问字符串返回的可视树:
任何人都可以帮助我吗?如上所述,我一直试图将这个过程从网络中分离出来,而且一点都没有了。
答案 0 :(得分:2)
您可以从URL加载XML DOM文档,然后使用其方法从所选节点访问文本。以下示例使用XPath来标识节点,但也可以使用其他方法:getElementsByTagName
; SelectNodes
;等
我用后期绑定编写了这个示例。在浏览文档方法和属性时,您可能更喜欢使用早期绑定进行开发...为 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