Xmldocument эквивалент в XDocument - PullRequest
       22

Xmldocument эквивалент в XDocument

0 голосов
/ 01 декабря 2011

Я написал следующий код, используя XMLDocument

string Query = @"/ShortcutList/" + Modality;
            XmlNodeList nodes = shortcutsXMLDocument.SelectNodes(Query);
            if (nodes == null)
            {
                // if the modality not exists, I will load the Default one 

                Query = @"/ShortcutList/Default";
                nodes = shortcutsXMLDocument.SelectNodes(Query);
            }

            for (int i = 0; i < nodes[0].ChildNodes.Count; i++)
            {
// do something here
}

, где shortcutsXMLDocument - XMLDocument

Как конвертировать его с помощью xDocument, мне не удалось найти эквивалент SelectNodes в xdocument

любая идея, пожалуйста

1 Ответ

1 голос
/ 01 декабря 2011

Ну, код довольно странный, так как SelectNodes всегда возвращает XmlNodeList, поэтому проверка if (nodes == null) никогда не будет истинной, и вы также можете удалить ее. Что касается первых двух строк, вы можете заменить их на

List<XElement> nodes = shortcutsXMLDocument.Elements("ShortcutList").Elements(Modality).ToList();

при условии, что переменная Modality содержит просто имя элемента, а не полное выражение XPath.

Тогда для цикла for вы можете использовать, например,

foreach (XNode node in nodes[0].Nodes()) {
  // do something here with node
}

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

...