2013-11-14 59 views
2

我的應用程序從SharePoint Web服務(使用SOAP和CAML查詢)獲取數據,我使用Xdocument文檔來存儲檢索到的xmlNode,然後將xdocument分配給裝箱到gridView的XMLDataSource。如何過濾Xdocument並返回Xdocument?

現在我需要在綁定之前過濾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

如果你只是想創建這些內容的文件,你可以使用:

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

(這將創建一個文檔與<root>根元素,所有的直接在下面感興趣的元素。)

不太確定所有的綁定部分 - 我強烈懷疑可能有更好的選擇 - 但這肯定會給你一個新的XDocument

+0

感謝這似乎是工作的問題是,三次創建相同的結構。像基{System.Xml.Linq.XContainer}:宣言:空 DocumentType:空 的NodeType:文檔 根: Vishal

+0

BTW條的類型是:System.Linq.Enumerable.WhereEnumerableIterator Vishal

+0

@VishalSachdeva:很難分辨出你真的有什麼。如果您將整個文檔*作爲XML文檔*轉儲出去會發生什麼?我懷疑你剛纔有3匹配的行... –