如何在此 SelectSingleNode 语句中使用变量
oldCd = root.SelectSingleNode("/students/student[id={0}]",id);
如何在此 SelectSingleNode 语句中使用变量
oldCd = root.SelectSingleNode("/students/student[id={0}]",id);
ifid
是student
元素的属性
root.SelectSingleNode(String.Format("//students/student[@id='{0}']",id))
如果是子元素
root.SelectSingleNode(String.Format("//students/student[id[text()='{0}']]",id))
好吧,您可以使用它string.Format
来创建 XPath 表达式,如 LB 的回答所示。
我个人不会——我会使用 LINQ to XML,它不像使用 XPath 那样混合代码和数据。它带有与 SQL 注入攻击的正常来源相同的问题。
LINQ to XML 查询将如下所示:
var node = doc.Root.Elements("Students")
.Elements("Student")
.Where(x => (string) x.Element("id") == id)
.SingleOrDefault();
(如果id
是int
,您可以将XElement
to 转换int
为string
。)
我通常更喜欢使用 LINQ to XML 进行查询,而不是使用 XPath;当然,其他人有不同的偏好。