我的应用程序从SharePoint Web服务获取数据(使用SOAP和CAML查询),我使用Xdocument文档存储检索到的xmlNode,然后将xdocument分配给XMLDataSource,XMLDataSource被分箱到gridView。
现在我需要在绑定之前过滤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那样退出,XDocument是以XML.SoString()的形式绑定到XMLDataSource的必需格式。
希望我能够解释这个问题。
提前多多感谢。
维沙尔
答案 0 :(得分:4)
如果您只是尝试使用这些元素创建文档,则可以使用:
XDocument filteredDocument = new XDocument(new XElement("root", bar));
(这将创建一个根元素为<root>
的文档,以及您直接感兴趣的所有元素。)
对所有绑定部分不太确定 - 我强烈怀疑可能有更好的选择 - 但这肯定会给你一个新的XDocument
。