我已经通过在VB6中连接字符串来构建Xpath表达式:
strXPath = "xDOC.selectNodes(" & """/GroupType1""" & ").item(" & CStr(i) & ").selectNodes(" & """/OperationStageCollection/OperationStage""" & ").length"
“ i”是用于索引
的整数例如,我想评估strXPath以获得循环计数器:
n = CInt(strXPath)
n被声明为Integer; strXPath声明为字符串。 VB6在上面的评估表达式上引发类型不匹配错误。我一定想念一些明显的东西。如何评估strXPath?
我意识到XPath表达式本身可能存在错误,但是我想使评估工作以便调试此类可能的错误。
尝试删除一些双引号:
iLength = xDOC.selectNodes("/GroupType1").item(i).selectNodes("/OperationStageCollection/OperationStage").length
这应该以整数形式返回所需的length
属性。
然后您可以在循环中使用iLength
。
@@ BRW:您的两个问题都非常具体,即如何使用XPath获得某些结果。但是我怀疑如果您要解释what(数据)并尝试从XML中检索,注释程序可能会向您显示您未想到的方式,例如假设您要遍历<OperationEvent>
中的所有<OperationEventCollection>
,则<OperationEvent>
可以检索单个//GroupType1/OperationStageCollection/OperationStage/OperationEventCollection/OperationEvent[1-based-index]
,例如//GroupType1/OperationStageCollection/OperationStage/OperationEventCollection/OperationEvent[1]
,它产生一个XML节点:
<OperationEvent>
<OperationEventDate1>2018-12-16</OperationEventDate1>
<OperationEventCode>5</OperationEventCode>
<OperationEventDate2>2018-05-16</OperationEventDate2>
</OperationEvent>
因此有多种selectNodes
方法,one正确的XPath查询可能会立即产生所需的结果。