如何在 VB6 中评估连接的字符串作为索引 XPath 表达式
How evaluate concatenated string as indexed XPath expression in VB6
我在 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
这应该 return 您想要的 length
属性,作为整数。
然后您可以在循环中使用 iLength
。
@BRW:您的两个问题都非常具体,即 如何 使用 XPath 实现某些结果。但我怀疑如果你解释 what (数据)你试图从 XML 检索,评论者可能会告诉你你没有想到的方式,例如假设您想遍历 <OperationEventCollection>
中的所有 <OperationEvent>
,可以通过 //GroupType1/OperationStageCollection/OperationStage/OperationEventCollection/OperationEvent[1-based-index]
检索单个 <OperationEvent>
,例如//GroupType1/OperationStageCollection/OperationStage/OperationEventCollection/OperationEvent[1]
,这导致单个 XML 节点:
<OperationEvent>
<OperationEventDate1>2018-12-16</OperationEventDate1>
<OperationEventCode>5</OperationEventCode>
<OperationEventDate2>2018-05-16</OperationEventDate2>
</OperationEvent>
因此,使用多个 selectNodes
方法,一个 正确的 XPath 查询可能会立即产生所需的结果。
我在 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
这应该 return 您想要的 length
属性,作为整数。
然后您可以在循环中使用 iLength
。
@BRW:您的两个问题都非常具体,即 如何 使用 XPath 实现某些结果。但我怀疑如果你解释 what (数据)你试图从 XML 检索,评论者可能会告诉你你没有想到的方式,例如假设您想遍历 <OperationEventCollection>
中的所有 <OperationEvent>
,可以通过 //GroupType1/OperationStageCollection/OperationStage/OperationEventCollection/OperationEvent[1-based-index]
检索单个 <OperationEvent>
,例如//GroupType1/OperationStageCollection/OperationStage/OperationEventCollection/OperationEvent[1]
,这导致单个 XML 节点:
<OperationEvent>
<OperationEventDate1>2018-12-16</OperationEventDate1>
<OperationEventCode>5</OperationEventCode>
<OperationEventDate2>2018-05-16</OperationEventDate2>
</OperationEvent>
因此,使用多个 selectNodes
方法,一个 正确的 XPath 查询可能会立即产生所需的结果。