我有一个Xpath类型命令,我希望命令中嵌入的[i]是一个可变的整数...
Set ActiveASIN = objxmldoc.selectSingleNode("//ns1:GetLowestOfferListingsForASINResult[i]/ns1:Product/ns1:Identifiers/ns1:MarketplaceASIN/ns1:ASIN")
但我能让这个工作的唯一方法就是在块和块中构建上面的命令。然后连接....根本不优雅....
firstpart = "//ns1:GetLowestOfferListingsForASINResult[" + CStr(i) + "]"
secondpart = "/ns1:Product/ns1:Identifiers/ns1:MarketplaceASIN/ns1:ASIN"
complete = firstpart + secondpart
Set ActiveASIN = objxmldoc.selectSingleNode(complete)
...这只是我不知道正确语法的情况,还是必须像上面那样完成?
答案 0 :(得分:0)
我能想到的唯一选择是使用objxmldoc.selectNodes()
选择所有节点(不使用[i])到节点列表中,然后使用集合的索引来获取所需的项目。 / p>
这样的事情:
Set ASINNodes = objxmldoc.selectNodes("//ns1:GetLowestOfferListingsForASINResult/ns1:Product/ns1:Identifiers/ns1:MarketplaceASIN/ns1:ASIN")
Set ActiveASIN = ASINNodes(i)
根据您的XML以及您需要检索的数量,它可能比您自己的解决方案效率更高或更低。
答案 1 :(得分:0)
如果你想要的只是简化你的代码,我建议:
Set ActiveASIN = objxmldoc.selectSingleNode( _
"//ns1:GetLowestOfferListingsForASINResult[" & i & "]" & _
"/ns1:Product/ns1:Identifiers/ns1:MarketplaceASIN/ns1:ASIN")