动态版本的vb SelectSingleNode

时间:2016-10-08 18:24:08

标签: xml vb.net xmldocument

我知道

book = root.SelectSingleNode("descendant::bk:book[bk:author/bk:last-name='Atwood']", nsmgr);

可以以静态方式在xml文件中添加元素。

有没有办法使用类似的方案,但有动态地址。例如。其中'阿特伍德'不是const字符串而不是动态字符串。

感谢您的帮助。

Btw:来自Microsoft help site

的示例

1 个答案:

答案 0 :(得分:2)

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)

供参考: