如果属性等于预定义字符串,则选择节点

本文关键字:选择 节点 字符串 预定义 属性 如果 | 更新日期: 2023-09-27 18:24:26

我目前正在使用一个循环,该循环为我提供了一个变量,然后需要将该变量输入到Xpath方法中,以获得属性等于我的变量的任何节点。到目前为止,我已经了解到Xpath允许您使用从XML文档中选择一个节点

root.SelectNodes("Element[@Attribute='SpecificValue']")

然而,我想知道是否有一种方法可以在特定值的位置插入一个预定义的变量,这样我就可以在循环的每次迭代中获取一组不同的节点。

例如:

string  attribValue= "test"
root.SelectNodes("Element[@Attribute = attribValue]")

如果属性等于预定义字符串,则选择节点

使用字符串格式:

string attribValue = "test";
string expression = String.Format("Element[@Attribute = '{0}']", attribValue);
root.SelectNodes(expression);

使用XML Linq

            XDocument doc = new XDocument();
            XElement root = (XElement)doc.FirstNode;
            string  attribValue= "test";
            var results = root.Descendants("Element").Where(x => x.Attribute("Attribute").Value == attribValue).ToList();​