2009-12-23 49 views
0

我正在使用Sharepoint的list.asmx Web服务将项目从Silverlight应用程序添加到Sharepoint列表。我需要知道这个新创建的项目的ID。 UpdateListItemsCompleted的e.Result(XElement)返回具有以下XML片段。我如何提取这个项目的ID。 XLinq我不擅长!从Silverlight获取新增项目的ID到Sharepoint列表

<Results xmlns="http://schemas.microsoft.com/sharepoint/soap/"> <Result ID="1,New"> <ErrorCode>0x00000000</ErrorCode> <ID /> <z:row ows_ID="4" ows_ContentTypeId="0x010046B4975C5FD8144EBBE658917B8CB92B00EAD628BF07FAF14DA2C983B981A32E7A" ows_ContentType="Item" ows_Title="My Test Entry From Silverlight" ows_Modified="2009-12-23 14:53:55" ows_Created="2009-12-23 14:53:55" ows_Author="3;#Khurram Aziz" ows_Editor="3;#Khurram Aziz" /> </Result> </Results>

回答

0

编辑:我读的XML过于草率..

尝试..

  e.Result.Elements() 
        .Where(c => c.Name.LocalName == "Result").First().Elements() 
         .Where(c => element.Name.LocalName == "row").First().Attribute("ows_ID").Value; 
+0

e.Result.Element(“z:row”)给出了'The':'字符,十六进制值0x3A,不能包含在名称中。“XmlException! – 2009-12-23 19:36:42

+0

是的;它工作并帮助删除嵌套的GetEnumerator()/ MoveNext ()/当前代码:) 只是在Lambda中的一个小的更正... e.Result.Elements()。其中​​(c => c.Name.LocalName ==“Result”)。First()。Elements ().Where(c => element.Name.LocalName ==“row”)。First()。Attribute(“ows_ID”)。Value; – 2009-12-23 20:12:15

0

从我的头顶试试这个:

using System.Xml; 

XmlDocument xdoc = new XmlDocument(); 
xdoc.LoadXml(@"<Results xmlns=""http://schemas.microsoft.com/sharepoint/soap/""> <Result ID=""1,New""> <ErrorCode>0x00000000</ErrorCode> <ID /> <z:row ows_ID=""4"" ows_ContentTypeId=""0x010046B4975C5FD8144EBBE658917B8CB92B00EAD628BF07FAF14DA2C983B981A32E7A"" ows_ContentType=""Item"" ows_Title=""My Test Entry From Silverlight"" ows_Modified=""2009-12-23 14:53:55"" ows_Created=""2009-12-23 14:53:55"" ows_Author=""3;#Khurram Aziz"" ows_Editor=""3;#Khurram Aziz"" /> </Result> </Results>"); 
XmlNode xnode = xdoc.SelectSingleNode("//z:row[@ows_ID]"); //Select node that has attribute ows_ID 
string idString = xnode.Attributes["ows_ID"].Value; 
+0

我使用Silverlight(v3);不幸的是XmlDocument,XmlNode和XPath(SelectSingleNode)在那里不可用: – 2009-12-23 18:59:47

+0

XLinq应该可用(XDocument/XElement)请参阅如何使用此处:http://forums.silverlight.net/forums/t/11702.aspx – Colin 2009-12-23 19:35:34

相关问题