如何从Microsoft Access中的IXMLDOMNodeList获取原始xml?
如何在Microsoft Access中从MSXML2-IXMLDOMNodeList中提取原始Xml文本?您可以在每个IXmlDomNode上使用。您将使用VBA完成此操作 将相应的msxml dll添加到工具中 编写如下代码:如何从Microsoft Access中的IXMLDOMNodeList获取原始xml?,xml,ms-access,Xml,Ms Access,如何在Microsoft Access中从MSXML2-IXMLDOMNodeList中提取原始Xml文本?您可以在每个IXmlDomNode上使用。您将使用VBA完成此操作 将相应的msxml dll添加到工具中 编写如下代码: Public Function getFromXML(x_fileXML as string) as string On Error GoTo ERREUR Dim doc_xml As MSXML2.DOMDocument, _
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
这是即时写的。在离开进程之前,请检查要关闭/设置为无的对象。(此查询是通过代理为我发布的。)所需的确切知识是获取web服务api返回的MSXML2.IXMLDOMNodeList对象,并从节点提取数据。我有一段可用于XML版本的工作代码,但我不想成为MSXML专家只是为了让一个函数工作。这是使用XML输入的版本,如何将其更改为使用节点列表输入?(还可以将节点列表输出为XML吗?这将有助于完成其余步骤
(加:)
我刚刚对节点尝试了.xml属性,这实际上为我提供了整个xml。显然,api发送了一个节点列表,只有一个节点,将.xml属性应用到该节点会生成一个完整的XMLdocument(我不知道如何在这里显示,xml是在预览中处理的)。
(/新增)
私有子解析xml_Click()
将此XML设置为MSXML2.DOMDocument
Dim fsucces作为布尔值
作为MSXML2.IXMLDOMNode的Dim oRoot
Dim oBooking为MSXML2.IXMLDOMNode
弱智儿童作为MSXML2.IXMLDOMNodeList
Dim oChild为MSXML2.IXMLDOMNode
数据库
Dim theRST As记录集
设置db=CurrentDb
Set-theRST=db.OpenRecordset(“XMLBookings”,dbOpenDynaset)
设置thisXML=New MSXML2.DOMDocument
thisXML.async=False
thisXML.validateOnParse=False
fSuccess=thisXML.LoadXml(预订)
如果出了什么问题,现在就退出。
如果不成功,那么
去那里
如果结束
设置oRoot=thisXML.documentElement
对于oRoot.childNodes中的每个oBooking
新疗法
设置oChildren=oBooking.childNodes
对于每个oChildren中的oChildren
选择Case oChild.nodeName
案例“EventName”
'MsgBox“EventName=“&oChild.nodeTypedValue
theRST!EventName=oChild.nodeTypedValue
案例
(等)
结束选择
下一个赭石
更新“保存更改”。
下一个oBooking
MsgBox“完成!”
治疗结束
设为B=无
出口:
出口接头
扶手RR:
MsgBox“Error”和Err.Number&“:”和Err.Description
继续离开那里
简历
端接头
这实际上取决于您打算对xml做什么。在access 2003和2007中,我们可以导入xml 因此,如果您有一个xml字符串,它是一个数据表,那么您可以接收数据,将数据写入磁盘,然后执行Application.ImportXML。与这里给出的其他答案相比,这种方法的代码要少得多 以下是此概念的代码剪贴:
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
例如:
1.
卡拉尔
艾伯特
2.
Smo
乔
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
<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>