2

我的应用程序从 SharePoint Web 服务获取数据(使用 SOAP 和 CAML 查询),我使用 Xdocument 文档来存储检索到的 xmlNode,然后将 xdocument 分配给绑定到 gridView 的 XMLDataSource。

现在我需要在绑定之前过滤 Xdocument,只选择元素 (ows_Partner_x0020_Type) 与变量匹配的那些记录。

我正在尝试这样:

doc = doc.Descendants(z + "row").Where(rows => rows.Attribute("ows_Partner_x0020_Type").Value == Partner_Type.SelectedValue);

或者

var bar = doc.Descendants(z + "row").Where(rows => rows.Attribute("ows_Partner_x0020_Type").Value == Partner_Type.SelectedValue);

但问题是上述 LINQ 的返回类型是System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement>

它与 XDocument 完全不同,它是作为 doc.ToString() 绑定到 XMLDataSource 所需的格式。

希望我能够解释这个问题。

提前非常感谢。

维沙尔

4

1 回答 1

4

如果你只是想用这些元素创建一个文档,你可以使用:

XDocument filteredDocument = new XDocument(new XElement("root", bar));

(这将创建一个根元素为 的文档<root>,以及您直接感兴趣的所有元素。)

不太确定所有绑定部分 - 我强烈怀疑可能有更好的选择 - 但这肯定会给你一个新的XDocument.

于 2013-11-14T18:35:58.687 回答