Запрос с Linq в xml - PullRequest
       19

Запрос с Linq в xml

0 голосов
/ 13 августа 2010

Я довольно новичок в Linq и пытаюсь написать простой запрос для возврата сообщений об ошибках в моем XML-файле.

<?xml version="1.0" encoding="utf-8"?>
<Error xmlns="urn:xxxxx">
            The following errors were detected:
            <Message>Internal Error</Message></Error>

Следующее работает и возвращает сообщение об ошибке:

     Dim loaded As XDocument = XDocument.Parse(strReturn)
     Dim ns As XNamespace = "urn:xxxxx"
     Dim errors = From err In loaded.Descendants(ns + "Error") _
                                   Select err.Elements(ns + "Message").Value

, но следующее не дает и не дает результатов:

Imports <xmlns="urn:xxxxx">
Dim loaded As XDocument = XDocument.Parse(strReturn)
Dim errors = From err In loaded.Descendants.<Error> _
                                 Select err.Elements.<Message>.Value

Я просто пытаюсь лучше понять Linq, но может кто-нибудь сказать мне, почему последний не работает, как они обане вернуть тот же результат?

Заранее спасибо

1 Ответ

1 голос
/ 13 августа 2010

Запись .<Error> вызывает метод Elements, поэтому, когда вы вызываете err.Elements.<Message>, вы делаете err.Elements.Elements("Message") и получаете потомков потомков err, а не только его потомков.Просто удалите лишние вызовы Потомкам и Элементам.Вам нужно будет использовать ... вместо ., если вы хотите, чтобы потомки загружались вместо просто потомков.

Dim errors = From err In loaded...<Error> _
             Select err.<Message>.Value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...