0

I now have code which I think should work, but isn't. It returns nothing. I'm absolutely new to XML so it could just be a syntax problem.

http://i.imgur.com/YatU8N3.png?1

Code:

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

Element from an XML document I am trying to select:

enter image description here

From the doc header:

enter image description here

Document full text

Document download

1 Answer 1

1

So, it turns out it was a combined syntax / "didn't quite understand XML heirarchy yet" issue.

So, firstly, this isn't a Node, it's not even an attribute, it's just a value:

"ns5:CashBankInHand"

It was contained in a Node <ix:nonFraction ...> so the first part of my XPath string should be:

("//ix:nonFraction")

Then, name is an attribute so the actual query should be:

("//ix:nonFraction [@name = ""ns5:CashBankInHand""]")

Which works perfectly.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.