我现在有代码,我认为应该工作,但不是。它什么都不返回。我对XML非常陌生,所以它可能只是一个语法问题。
代码:
Public Sub CreateXmlDom()
Dim xDoc As MSXML2.DOMDocument
Dim xmlNameSpaces As String
Dim xmlNodeList As MSXML2.IXMLDOMNodeList
Dim strFullFilename As String
strFullFilename = "S:\Investments\Data\Companies House\Monthly Companies House Downloads\Accounts_Monthly_Data-April2014\Prod224_0005_00011771_20131231.html"
Set xDoc = New MSXML2.DOMDocument
With xDoc
If .Load(strFullFilename) Then
.setProperty "SelectionLanguage", "XPath"
.setProperty "SelectionNamespaces", "xmlns:ns5=""http://www.xbrl.org/uk/gaap/core/2009-09-01"""
Set xmlNodeList = .SelectNodes("//ns5:CashBankInHand")
End If
End With
End Sub
我想要选择的XML文档中的元素:
来自doc标题:
答案 0 :(得分:1)
因此,事实证明这是一种组合语法/并且不太了解XML层次结构#34;问题。
所以,首先,这不是一个节点,它甚至不是一个属性,它只是一个值:
"ns5:CashBankInHand"
它包含在节点<ix:nonFraction ...>
中,因此我的XPath字符串的第一部分应为:
("//ix:nonFraction")
然后,name
是一个属性,因此实际查询应为:
("//ix:nonFraction [@name = ""ns5:CashBankInHand""]")
完美无缺。