2010-09-20 17 views
0

Je reçois les données de sharepoint wbesite en utilisantCant naviguer à travers les résultats de GetListItems en utilisant LINQ to XML

activeItemData = ws.GetListItems(listGUID, activeItemViewGUID, 
    qNode, vNode, rowLimit, null, ""); 

Voici ce que je suis arrivé du sharepoint son un enregistrement.

<**rs:data** ItemCount="1" ListItemCollectionPositionNext="Paged=TRUE&amp;p_ID=1" xmlns:rs="urn:schemas-microsoft-com:rowset"> 
    <**z:row** ows_ID="1" ows_Title="My RFC Title number one" ows_GUID="{A73B8E91-98BF-4CA7-8ADB-A3B933D6D8DA}" ows_Req_x0020_Number="112343" ows_Ends="2010-07-17 00:00:00" ows_MetaInfo="1;#" ows__ModerationStatus="0" ows__Level="1" ows_Start="2010-07-08 00:00:00" ows_owshiddenversion="13" ows_UniqueId="1;#{EA9E9C87-1B28-47DE-B7F4-DA4ADDF913F6}" ows_FSObjType="1;#0" ows_Created="2010-07-07 11:05:56" ows_Status="1. In-Work" ows_FileRef="1;#sites/PS/Lists/Change Control/1_.000" xmlns:z="#RowsetSchema" /> 
</rs:data> 

maintenant à utiliser LINQ pour XML je change l'objet qui détiennent ces données de XMLDocument à XDocument en utilisant

XDocument results = XDocument.Parse(activeItemData.OuterXml); 

et le problème est qu'une fois que j'essaie de parcourir les données pour obtenir ID et le titre j'ai eu l'erreur: Référence d'objet non définie à une instance d'un objet.

Voici le morceau de code que je suis en train d'utiliser pour obtenir ces champs:

var items = from item in results.Descendants(XName.Get("row", "#RowsetSchema")) 
     select new 
      { 
       Title = item.Attribute("Title").Value, 
       Id = item.Attribute("ID").Value 
      }; 

Il semble que l'article ne peut pas localiser cet élément XName

Merci

Répondre

0

Essayez:

var items = from item in results.Descendants(XName.Get("row", "#RowsetSchema")) 
     select new 
      { 
       Title = item.Attribute("ows_Title").Value, 
       Id = item.Attribute("ows_ID").Value 
      }; 

Si vous regardez l'élément de ligne:

<z:row ows_ID="1" ows_Title="My R.....

vous manque ows_ du nom d'attribut.