vb SelectSingleNode 的动态版本
Dynamic version of vb SelectSingleNode
我知道
book = root.SelectSingleNode("descendant::bk:book[bk:author/bk:last-name='Atwood']", nsmgr);
可以以静态方式对 xml 文件中的元素进行寻址。
有没有办法使用类似的方案但使用动态寻址。例如。其中“Atwood”不是常量字符串,而是动态字符串。
感谢您的帮助。
顺便说一句:示例来自 Microsoft help site
SelectSingleNode()
接收到的 XPath 表达式只是一个字符串。您应该能够使用任何适用于在 VB 中动态构造字符串的方法,即简单的字符串连接:
lastname = "Atwood"
query = "descendant::bk:book[bk:author/bk:last-name='" & lastname & "']"
book = root.SelectSingleNode(query, nsmgr)
... String.Format()
如评论中所述:
lastname = "Atwood"
query = "descendant::bk:book[bk:author/bk:last-name='{0}']"
book = root.SelectSingleNode(String.Format(query, lastname), nsmgr)
... 或使用 VB 14 中的新功能, 字符串插值 :
lastname = "Atwood"
query = $"descendant::bk:book[bk:author/bk:last-name='{lastname}']"
book = root.SelectSingleNode(query, nsmgr)
供参考:
我知道
book = root.SelectSingleNode("descendant::bk:book[bk:author/bk:last-name='Atwood']", nsmgr);
可以以静态方式对 xml 文件中的元素进行寻址。
有没有办法使用类似的方案但使用动态寻址。例如。其中“Atwood”不是常量字符串,而是动态字符串。
感谢您的帮助。
顺便说一句:示例来自 Microsoft help site
SelectSingleNode()
接收到的 XPath 表达式只是一个字符串。您应该能够使用任何适用于在 VB 中动态构造字符串的方法,即简单的字符串连接:
lastname = "Atwood"
query = "descendant::bk:book[bk:author/bk:last-name='" & lastname & "']"
book = root.SelectSingleNode(query, nsmgr)
... String.Format()
如评论中所述:
lastname = "Atwood"
query = "descendant::bk:book[bk:author/bk:last-name='{0}']"
book = root.SelectSingleNode(String.Format(query, lastname), nsmgr)
... 或使用 VB 14 中的新功能, 字符串插值 :
lastname = "Atwood"
query = $"descendant::bk:book[bk:author/bk:last-name='{lastname}']"
book = root.SelectSingleNode(query, nsmgr)
供参考: