Below is the C# function to call the lists.asmx MOSS Web Service to get list items from a list/document library.
Add reference to lists.asmx to your project and use the following code:
private void GetItems(string strListName)
{
try
{
#region Connect to URL
this.m_objWSSListService.Url = this.cmbURL.Text.Trim('/') + "/_vti_bin/lists.asmx";
string sDomain = string.Empty;
string sUserName = this.txtLogin.Text.Trim();
if (sUserName.IndexOf("\\") > 0)
{
sDomain = sUserName.Split("\\".ToCharArray())[0];
sUserName = sUserName.Split("\\".ToCharArray())[1];
}
this.m_objWSSListService.Credentials = new System.Net.NetworkCredential(sUserName, this.txtPassword.Text.Trim(), sDomain);
#endregion
string sListName = strListName;
string SourceDocumentURL = "";
string strTempLocation = "C:\\Temp\\";
string strFileName = "";
System.Xml.XmlNode xnListSchema = m_objWSSListService.GetList(sListName);
//get the Data from the List
System.Xml.XmlDocument xdListData = new System.Xml.XmlDocument();
System.Xml.XmlNode xnQuery = xdListData.CreateElement("Query");
System.Xml.XmlNode xnViewFields = xdListData.CreateElement("ViewFields");
System.Xml.XmlNode xnQueryOptions = xdListData.CreateElement("QueryOptions");
System.Xml.XmlNode xnListData = m_objWSSListService.GetListItems(sListName, null, xnQuery, xnViewFields, null, xnQueryOptions);
if (!Directory.Exists(strTempLocation))
{
Directory.CreateDirectory(strTempLocation);
}
foreach (XmlNode outerNode in xnListData.ChildNodes)
{
if (outerNode.NodeType.Equals(System.Xml.XmlNodeType.Element))
{
foreach (XmlNode node in outerNode.ChildNodes)
{
if (node.NodeType.Equals(System.Xml.XmlNodeType.Element))
{
MessageBox.Show(node.Attributes.GetNamedItem("ows_Title").InnerText);
}
}
}
}
}
catch (System.Exception ex)
{
this.WriteLog(ex.ToString());
}
}