Поиск элементов в XML - PullRequest
1 голос
/ 26 июня 2011

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

, если есть простой способ, чем парсинг и поиск значений по циклам?

<products>
    <product>
      <Name> PRODUCT 1</Name>
      <price>150</price>
    </product>
    <product>
      <Name> PRODUCT 2</Name>
      <price>250</price>
    </product>
    <product>
      <Name> PRODUCT 3</Name>
      <price>300</price>
    </product>
  <products>

Ответы [ 2 ]

5 голосов
/ 26 июня 2011

Вы можете использовать XPath:

XmlDocument doc = new XmlDocument();
doc.Load("myfile.xml");
XmlNode myPrice = doc.SelectSingleNode("/products/product[Name=' PRODUCT 1']/price");
Console.WriteLine(myPrice.InnerText);

выходы

150

Обратите внимание, что пробелы перед идентификаторами вашего продукта значительны.

Вы можете сделать то же самоеиспользуя XPathDocument, если вы предпочитаете:

XPathDocument doc = new XPathDocument("myfile.xml");
XPathNavigator xpath = doc.CreateNavigator();
XPathNavigator myPrice = xpath.SelectSingleNode("/products/product[Name=' PRODUCT 1']/price");
Console.WriteLine(myPrice.ToString());

также выводит

150

Протестировал оба из них в .NET 2.0.

1 голос
/ 26 июня 2011

Linq to Xml - это еще одно возможное решение, которое должно минимизировать обработку для стоящей перед вами задачи. см. msdn для более подробной информации: http://msdn.microsoft.com/en-us/library/bb387085.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...