Я предлагаю использовать XDocument
вместо XmlDocument
(последний не подходит для LINQ to XML). Используйте метод XDocument.Load(...)
для загрузки вашего «реального» XML.
string xml = @"<ProductTable>
<ProductName>Chair</ProductName>
<Price>29.5</Price>
</ProductTable>";
XDocument x = XDocument.Parse(xml);
var tables = x.Descendants("ProductTable");
Dictionary<string,string> products = new Dictionary<string, string>();
foreach (var productTable in tables)
{
string name = productTable.Element("ProductName").Value;
string price = productTable.Element("Price").Value;
products.Add(name, price);
}
Если вы предпочитаете использовать сахарную покрытием SQL-подобный синтаксис или хотели бы читать на эту тему, this MSDN article является прекрасным местом для начала.
Ниже более краткой версии, если вы чувствуете, как используя anonymous type:
XDocument document = XDocument.Parse(xml)
var products = /* products is an IEnumerable<AnonymousType> */
from item in document.Descendants("ProductTable")
select new
{
Name = item.Element("ProductName").Value,
Price = item.Element("Price").Value
};
Вы могли бы использовать этот выразительный синтаксис для печати матчей в консоли:
foreach (var product in products) /* var because product is an anonymous type */
{
Console.WriteLine("{0}: {1}", product.Name, product.Price);
}
Console.ReadLine();
Большое спасибо , codeparkle. Я собираюсь попробовать это позже сегодня вечером, когда я вернусь домой. Я посещаю семью 25 декабря, поэтому могу только прочитать ваш ответ, не имея возможности проверить. – user763554
codeparkle: Вы абсолютный гений! Ваш код работает отлично. Спасибо!!! – user763554