我知道
book = root.SelectSingleNode("descendant::bk:book[bk:author/bk:last-name='Atwood']", nsmgr);
可以以静态方式在xml文件中添加元素。
有没有办法使用类似的方案,但有动态地址。例如。其中'阿特伍德'不是const字符串而不是动态字符串。
感谢您的帮助。
Btw:来自Microsoft help site
的示例答案 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)
供参考: