Search code examples
xpathvb6concatenationevaluation

How evaluate concatenated string as indexed XPath expression in VB6


I've built an Xpath expression by concatenating strings in VB6:

    strXPath = "xDOC.selectNodes(" & """/GroupType1""" & ").item(" & CStr(i) & ").selectNodes(" & """/OperationStageCollection/OperationStage""" & ").length"

"i" is an integer used to index into

I want to evaluate strXPath to get a loop counter, for example:

    n = CInt(strXPath)

n is declared as Integer; strXPath is declared as string. VB6 throws a Type Mismatch error on the above evaluation expression. I must be missing something obvious. How can I evaluate strXPath?

I realize that there may be errors in the XPath expression itself, but I'd like to get the evaluation working in order to debug such possible errors.


Solution

  • Try removing some of the double-quotes:

    iLength = xDOC.selectNodes("/GroupType1").item(i).selectNodes("/OperationStageCollection/OperationStage").length
    

    This should return the length property you want, as an Integer.

    Then you can use iLength in your loop.