XmlDocument из LINQ to XML query - PullRequest
       17

XmlDocument из LINQ to XML query

0 голосов
/ 12 марта 2010

Я загружаю документ XML в объект XDocument, выполняю запрос и затем возвращаю данные через веб-сервис в виде объекта XmlDocument.

Приведенный ниже код работает нормально, но кажется немного вонючим. Есть ли более чистый способ получения результатов запроса и преобразования их в XDocument или XmlDocument?

            XDocument xd = XDocument.Load(Server.MapPath(accountsXml));         

        var accounts = from x in xd.Descendants("AccountsData")
                       where userAccounts.Contains(x.Element("ACCOUNT_REFERENCE").Value)
                       select x;

        XDocument xd2 = new XDocument(
            new XDeclaration("1.0", "UTF-8", "yes"),
            new XElement("Accounts")               
        );

        foreach (var account in accounts)
            xd2.Element("Accounts").Add(account);

        return xd2.ToXmlDocument();

Ответы [ 2 ]

0 голосов
/ 22 марта 2010

Поскольку это просто для проверки концепции приложения, я пока просто с этим кодом буду жить. Живое приложение будет подключаться напрямую к базе данных, поэтому мне не нужно будет извлекать свои данные из XML-файла, запрашивать, а затем снова выдавать их как XML.

0 голосов
/ 12 марта 2010

То, что вы добавляете XDeclaration в свой ответ, мне тоже кажется немного странным.

Почему вы создаете XML для возврата через уровень веб-службы? Слой веб-сервисов .NET, используете ли вы WCF или ASMX, выполнит сериализацию XML для вас.

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

...