如何從Microsoft Access中的MSXML2-IXMLDOMNodeList中提取原始Xml文本?如何從Microsoft Access中的IXMLDOMNodeList獲取原始xml?
0
A
回答
1
(此查詢是由代理髮布給我的。)所需的確切知識是採取由Web服務api返回的MSXML2.IXMLDOMNodeList對象,並從節點中提取數據。我有一段工作代碼可以用於XML版本,但不希望成爲MSXML專家,只是爲了讓一個函數可以工作。以下是使用XML輸入的版本,如何將其更改爲使用nodeList輸入? (我也可以輸出節點列表爲XML嗎?這將有助於剩下的步驟。
(增加:) 我剛剛試過帶節點的.xml屬性,實際上給了我整個XML。顯然,api用單個節點發送一個節點列表,然後將.xml屬性應用於該單個節點會生成一個完整的XML文檔(我無法弄清楚如何在這裏顯示,XML是在預覽中處理的) (/添加)
Private Sub ParseXML_Click() Dim thisXML As MSXML2.DOMDocument Dim fSuccess As Boolean Dim oRoot As MSXML2.IXMLDOMNode Dim oBooking As MSXML2.IXMLDOMNode Dim oChildren As MSXML2.IXMLDOMNodeList Dim oChild As MSXML2.IXMLDOMNode Dim theDB As Database Dim theRST As Recordset Set theDB = CurrentDb Set theRST = theDB.OpenRecordset("XMLBookings", dbOpenDynaset) Set thisXML = New MSXML2.DOMDocument thisXML.async = False thisXML.validateOnParse = False fSuccess = thisXML.LoadXml(Bookings_fld) ' If anything went wrong, quit now. If NotfSuccess Then GoTo ExitHere End If Set oRoot = thisXML.documentElement For Each oBooking In oRoot.childNodes theRST.AddNew Set oChildren = oBooking.childNodes For Each oChild In oChildren Select Case oChild.nodeName Case "EventName" ' MsgBox "EventName = " & oChild.nodeTypedValue theRST!EventName = oChild.nodeTypedValue Case (etc) End Select Next oChild theRST.Update ' Save changes. Next oBooking MsgBox "Done!" theRST.Close Set theDB = Nothing ExitHere: Exit Sub HandleErr: MsgBox "Error " & Err.Number & ": " & Err.Description Resume ExitHere Resume End Sub
1
您可以在每個IXmlDomNode上使用Xml property。
0
你會用VBA做到這一點。
相應的MSXML DLL添加到您的工具
編寫一些代碼,像這樣的:
Public Function getFromXML(x_fileXML as string) as string
On Error GoTo ERREUR
Dim doc_xml As MSXML2.DOMDocument, _
list_xml As IXMLDOMNodeList, _
i As Long, _
m_getFromXML as string
Set doc_xml = New MSXML2.DOMDocument
doc_xml.Load x_fileXML
'i am interested by the nodeLists having a "attributeType: tag"'
Set list_xml = doc_xml.getElementsByTagName("s:AttributeType")
For i = 0 To (list_xml.Length - 1)
'extract the requested data here'
'something like m_getFromXML = m_getFromXML & ";" & ...'
Next i
getFromXML = m_getFromXML
這是寫在飛。在離開proc之前,請檢查要關閉的對象/設置爲空。
0
這真的取決於你打算用XML做什麼。在獲得2003年和2007年,我們可以導入XML。
因此,如果您有一個xml字符串是數據表,那麼您可以接收數據,寫入磁盤,然後執行Application.ImportXML。這種方法是FAR較少代碼,然後在這裏給出的其他答案。
下面是一個代碼剪斷這一概念:
Dim intF As Integer
Dim strF As String
Dim objXML As Object
Set objXML = CreateObject("MSXML2.XMLHTTP")
objXML.Open "GET", "URL string here", False
objXML.Send
strF = "c:\t.xml"
intF = FreeFile
Open strF For Output As intF
Write #intF, objXML.responsetext
Close
Application.ImportXML "c:\t.xml", acAppendData
上面將認爲XML有一個目錄,或在文本表DEF
例如:
<CATALOG>
<tblContacts>
<ID>1</ID>
<Last_x0020_Name>Kallal</Last_x0020_Name>
<First_x0020_Name>Albert</First_x0020_Name>
</tblContacts>
<tblContacts>
<ID>2</ID>
<Last_x0020_Name>Smo</Last_x0020_Name>
<First_x0020_Name>Joe</First_x0020_Name>
</tblContacts>
</CATALOG>
相關問題
- 1. 如何從lxml獲取原始XML?
- 2. 從Android的原始資源獲取Xml
- 3. OneNote API - 獲取原始XML
- 4. 如何從Microsoft Access VBA中的SQL查詢獲取數據?
- 5. 如何獲取從web服務請求返回的原始xml?
- 6. 爲什麼LayoutInflater從xml返回原始視圖的副本,以及如何從xml獲取原始視圖
- 7. 如何從MaskedTextBox獲取原始文本?
- 8. 如何從DataRow獲取原始DataColumn值?
- 9. 如何從DataMapper :: Collection獲取原始SQL?
- 10. 如何從ChangeTracker獲取原始實體
- 11. Access-Control-Allow-Origin不允許訪問原始位置(從android獲取XML)
- 12. 從jQuery/XML對象獲取一個原始的xml
- 13. 如何獲取Microsoft Access中的表格的GUID
- 14. 從原始uncaughtException獲取StackTrace
- 15. 使用jQuery獲取原始XML節點
- 16. 從原始文本文件中獲取所有XML?
- 17. 如何在TreeView中獲取原始值?
- 18. 如何在android中獲取原始文件或原始目錄?
- 19. 如何從Microsoft Access中調試dll
- 20. 如何從Web服務調用WCF客戶端中獲取原始XML
- 21. 從模板中讀取Microsoft Access 2007
- 22. 如何從使用imap的gmail獲取原始的原始郵件正文?
- 23. Sorter從原始序列中獲取值
- 24. 如何從js中的攝像頭獲取原始圖像?
- 25. 如何從Ember js項目中的str.split()獲取原始值
- 26. 如何從java中的RGB獲取原始值
- 27. 如何從jQuery中的字符串獲取原始html?
- 28. 如何從失敗的JUnit測試中獲取原始錯誤?
- 29. 如何從Java中的String對象獲取原始字符串?
- 30. 從Rss20FeedFormatter獲取RSS/XML的原始字符串?