2013-11-14 2 views
2

내 응용 프로그램은 SOAP 및 CAML 쿼리를 사용하여 SharePoint 웹 서비스에서 데이터를 가져오고, Xdocument doc을 사용하여 검색된 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는 위의 반환 형식입니다하여 XDocument처럼 아무것도 종료되지 System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement>

XMLDataSource에 doc.ToString()으로 바인드하는 데 필요한 형식.

희망 문제를 설명 할 수 있습니다.

미리 감사드립니다.

이씨

답변

4

그냥 그 요소가있는 문서를 만들려고하는 경우 사용할 수 있습니다

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

(즉 <root>의 루트 요소로 문서를 만들 것이며, 모든 그 부분에 직접 관심이있는 요소를 찾으십시오.)

모든 바인딩 부품에 대해 잘 모르겠습니다 - 더 나은 대안이있을 수 있다고 확신합니다. 그러나 이것은 확실히 새로운 XDocument을 제공 할 것입니다.

+0

감사합니다.이 문제는 동일한 구조체를 만드는 ist 문제입니다. 추천는 기지국 {} System.Xml.Linq.XContainer : 선언 : NULL 의 DocumentType : NULL 노드 종류 : 문헌 루트 : Vishal

+0

BTW 바의 종류 : System.Linq.Enumerable.WhereEnumerableIterator Vishal

+0

@VishalSachdeva : 실제로 얻은 것을 말하기는 매우 어렵습니다. 전체 문서 *를 XML 문서 *로 덤프하면 어떻게됩니까? 방금 3 개의 일치하는 행이 있다고 생각합니다 ... –

관련 문제