0

我正在将 XML 文档加载到 XDocument 对象中,进行查询,然后通过 Web 服务将数据作为 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();
4

2 回答 2

0

您在响应中添加 XDeclaration 的事实对我来说也有点好笑。

为什么要构建 XML 以通过 Web 服务层返回?.NET Web 服务层,无论您使用 WCF 还是 ASMX,都会为您进行 XML 序列化。

您可以返回一个强类型对象,它会为您序列化。

于 2010-03-12T16:31:47.630 回答
0

由于这只是用于概念验证应用程序,我现在只使用此代码。实时应用程序将直接连接到数据库,因此我不必从 xml 文件中提取数据、查询然后将其作为 xml 再次推出。

于 2010-03-22T10:27:41.613 回答