Как загрузить хеш-таблицу из простого XML-файла с помощью xmltextreader - PullRequest
1 голос
/ 01 мая 2009

с использованием xmltextreader, как мне загрузить хеш-таблицу.

XML:

<base><user name="john">2342343</user><user name="mark">239099393</user></base>

Об этом спрашивали раньше, но я использовал какой-то прикольный линк, с которым мне пока не совсем удобно.

1 Ответ

2 голосов
/ 01 мая 2009

Что ж, решение LINQ to XML действительно простое, поэтому я предлагаю вам постараться сделать так, чтобы вам было удобно, а не создавать более сложное решение. Вот код с множеством объяснений ...

// Load the whole document into memory, as an element
XElement root = XElement.Load(xmlReader);

// Get a sequence of users
IEnumerable<XElement> users = root.Elements("user");

// Convert this sequence to a dictionary...
Dictionary<string, string> userMap = users.ToDictionary(
      element => element.Attribute("name").Value, // Key selector
      element => element.Value);                 // Value selector

Конечно, вы могли бы сделать все это за один раз - и я бы, вероятно, соединил второе и третье утверждения. Но это примерно так же концептуально просто, как это возможно. Ситуация усложнилась бы, если бы вы захотели использовать обработку ошибок вокруг возможности того, что пользовательский элемент может не иметь имени, по общему признанию. (Этот код будет генерировать исключение NullReferenceException в этом случае.)

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

...