2015-11-25 2 views
0

В настоящее время я использую цикл, который дает мне переменную, которая затем должна быть отправлена ​​в метод Xpath, чтобы получить мне любые узлы с атрибутом, равным моей переменной , До сих пор я узнал, что Xpath позволяет выбрать узел из документа XML с использованиемВыбор узла, если атрибут равен предопределенной строке

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

Однако, я хотел бы знать, если есть способ, я могу вставить предопределенную переменную, где конкретное значение, поэтому я могу захватить другой набор узлов с каждой итерацией моего цикла.

Например что-то вроде этого:

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

ответ

1

Использование string formatting:

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

Отлично! Спасибо за быстрый ответ. – Luke4792

0

Использование 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();​

Смежные вопросы