如何将串联字符串作为VB6中的索引XPath表达式求值

问题描述 投票:1回答:2

我已经通过在VB6中连接字符串来构建Xpath表达式:

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

“ i”是用于索引

的整数

例如,我想评估strXPath以获得循环计数器:

    n = CInt(strXPath)

n被声明为Integer; strXPath声明为字符串。 VB6在上面的评估表达式上引发类型不匹配错误。我一定想念一些明显的东西。如何评估strXPath?

我意识到XPath表达式本身可能存在错误,但是我想使评估工作以便调试此类可能的错误。

xpath vb6 concatenation evaluation
2个回答
0
投票

尝试删除一些双引号:

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

这应该以整数形式返回所需的length属性。

然后您可以在循环中使用iLength


0
投票

@@ 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查询可能会立即产生所需的结果。

© www.soinside.com 2019 - 2024. All rights reserved.