从对服务返回的某些xml执行的搜索中考虑以下结果集。
我需要从这里提取innerref属性的值(它在最后一行但在所示的消息框表示中的一行)。首先,当我得到它时,它不再是有效的xml而是一个字符串。其次它可能不包含internalref值(这个位至少很容易,我可以检查resultset.contains(“internalref”))。
所以假设我可以做一个索引搜索,它将提供internalref开始的索引,根据定义,我可以添加13到那个让我到我感兴趣的位的开头。
以此为出发点,我可以搜索下一个引号的索引,然后返回两者之间索引点的字符。
我不禁想到,虽然这可能是一种更简单的方法,但我过于复杂。内部参数存在的初始检查是给定的,但如果有一种更简单的方法来提取随后的引号之间的字符串位,我很想知道如何做到这一点。我追求的数字(是的,它需要转换,但不是问题,可以是1到15个字符的任何长度。
答案 0 :(得分:1)
我更喜欢这次使用XML,SelectNode和XPath进行解析,但这里应该很快而且很脏。假设您已确定 internalref = 存在并且没有空格,请尝试:
Dim i As Integer = CInt(Val(Split(s, "internalref=""")(1)))
我假设这个数字是一个整数,但如果它是一个双精度数,那么删除对CInt的调用。
Dim i As double = Val(Split(s, "internalref=""")(1))