首先“感谢”你的时间来研究这一点。VBA以XML格式读取ChildNode的ChildNode的ChildNode
如果有人能给我一个解决问题的示例代码/代码段,我会非常感激。 我正在通过VBA读取ChildNode的ChildNode的ChildNode ...在XML中遇到困难。
示例XML:sample XML file
我当前的代码提供了错误:运行时错误6溢出。
我想要的输出是这样
ID VIEW DESCRIPTION COLUMNNAME
55494 Asset Management Actual Price.Value
55464 Change Management CAB Manager (Change Co-ord)
55464 Change Management Manufacturer (2)
55464 Change Management Change Timing
55308 Incident Management Submitter
55308 Incident Management Submit Date
55308 Incident Management Secure Work Log
55308 Incident Management Number of Attachments
73189 Knowledge Management
73189 Knowledge Management ArticleCompany
73189 Knowledge Management ArticleDocID
当前代码
Sub test()
Dim Init As Integer
Dim xmlDoc As New DOMDocument
Dim DomNode1 As IXMLDOMElement
Dim DomNode2 As IXMLDOMElement
Dim node As IXMLDOMNode
Dim childNode1 As IXMLDOMNode
Dim childNode2 As IXMLDOMNode
Dim childNode6 As IXMLDOMNode
Dim elements As Object
Dim el As Variant
Init = 7
'Worksheets("Report_Details").Select
xmlDoc.Load ("C:\DRIVE\BMC\DSS\01_DSS_NExT\SP_1\IN APP\Automation_YF\Tools\TEST_xml.xml")
child_count = 0
For Each DomNode1 In xmlDoc.getElementsByTagName("view")
For Each childNode1 In DomNode1.getElementsByTagName("id")
For Each childNode2 In DomNode1.getElementsByTagName("viewDescription")
For Each childNode6 In DomNode1.getElementsByTagName("columnName")
ActiveSheet.Cells(Init, 6).Value2 = childNode6.Text
ActiveSheet.Cells(Init, 2).Value2 = childNode2.Text
ActiveSheet.Cells(Init, 1).Value2 = childNode1.Text
child_count = child_count + 1
Init = Init + 1
Next childNode6
Next childNode2
Next childNode1
Next DomNode1
End Sub
请编辑你的q向您展示您给出的示例XML所需的输出。顺便说一下,XML的格式不正确;第一行下面的所有内容都应包含在' ... '中。 –
2014-08-28 09:07:42
XML很大,消息对行数有限制。我正在努力弄清楚。 – WolfSkin 2014-08-28 11:42:22
当然,但是对于你在问题中写的那几行XML,输出是什么? – 2014-08-28 11:54:41