string listsWebServicesURL = "https://XXXXXX/_vti_bin/Lists.asmx";

Lists listService = new Lists();
listService.Url = listsWebServicesURL;
listService.Credentials = new System.Net.NetworkCredential("domain\\XXXX", "password");

string spSiteURL = listsWebServicesURL.Replace("/_vti_bin/Lists.asmx", "");
string SpCrimeTypeListName = "Crime Type";
string agencyId = "42f5214c-8eb8-4a53-a1f2-0d19eae8d3e9";
string crimeType = "2Randy test";

XmlDocument xmlDoc = new System.Xml.XmlDocument();

XmlNode ndQuery = xmlDoc.CreateNode(XmlNodeType.Element, "Query", "");
XmlNode ndViewFields = xmlDoc.CreateNode(XmlNodeType.Element, "ViewFields", "");
XmlNode ndQueryOptions = xmlDoc.CreateNode(XmlNodeType.Element, "QueryOptions", "");

ndQueryOptions.InnerXml = string.Format("<IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns><ViewAttributes Scope='RecursiveAll'/><Folder>Lists/{0}/{1}</Folder>", SpCrimeTypeListName, agencyId);
ndViewFields.InnerXml = "<FieldRef Name='ID' />";
ndQuery.InnerXml = string.Format("<Where><Eq><FieldRef Name=\"Title\" /><Value Type=\"Text\">{0}</Value></Eq></Where>", crimeType);
XmlNode ndListItems = listService.GetListItems(SpCrimeTypeListName, null, ndQuery, ndViewFields, null, ndQueryOptions, null);

string itemCount = ReadXmlNodeValue(ndListItems.OuterXml, "rs:data", "ItemCount");

int intValue = 0;

if (int.TryParse(itemCount, out intValue) && intValue == 0)
{

StringBuilder batchString = new StringBuilder();
batchString.AppendFormat("<Method ID='1' Cmd='{0}'>", "New");
batchString.AppendFormat("<Field Name='Title'>{0}</Field>", crimeType);
batchString.AppendFormat("</Method>");

XmlDocument xmlDocInsert = new System.Xml.XmlDocument();

System.Xml.XmlElement elBatch = xmlDocInsert.CreateElement("Batch");

elBatch.InnerXml = batchString.ToString();

elBatch.SetAttribute("OnError", "Continue");
string agencyFolderURL = string.Format("{0}/Lists/{1}/{2}", spSiteURL, SpCrimeTypeListName, agencyId);
elBatch.SetAttribute("RootFolder", agencyFolderURL);

XmlNode ndReturn = listService.UpdateListItems(SpCrimeTypeListName, elBatch);

string newItemID = ReadXmlNodeValue(ndReturn.OuterXml, "z:row", "ows_ID");

if (int.TryParse(newItemID, out intValue) && intValue > 0)
{
//return true;
}
else
{
//return false;
}
}

posted on 2016-05-12 19:21  blogsweb  阅读(91)  评论(0)    收藏  举报