Using owssvr.dll to retrieve List data in XML format

Owssvr.dll is a traditional Remote Procedure Call method to remotely invoke functions in SharePoint. It can be used to retrieve data from SharePoint list as well.

syntax:
http://sharepoint.com/_vti_bin/owssvr.dll?Cmd=Display&List=<<LIST-GUID>>&XMLDATA=TRUE

E.g.
https://intranet.sharepoint.com/_vti_bin/owssvr.dll?Cmd=Display&List={6685db48-013f-4934-8147-b7a6014eccc9}&XMLDATA=TRUE

Other options:
Filter &  View
Append -  FilterField1=<<Field-Internal-Name>>&FilterValue1=<<Value-of-the-field>>
e.g:
FilterField1=Domain&FilterValue1=Sales
View={ViewGuid}


How to get the List GUID?
Go to List settings >> right click "Audience targeting settings" Say "Copy Shortcut". Now you will get something like: https://sharepoint.com/sites/Test/_layouts/ListEnableTargeting.aspx?List={6685db48-013f-4934-8147-b7a6014eccc9}
Highlighted is the GUID.

Output:
Using owssvr.dll to retrieve List data in XML format

Once you get the XML you can use it wherever required.
E.g.:
<script type="text/javascript">
function GetListData()
{
// Get the data from SharePoint List
var reqstring ="http://SharePoint.com/_vti_bin/owssvr.dll?Cmd=Display&List={6685db48-013f-4934-8147-b7a6014eccc9}&XMLDATA=TRUE";
var req = new ActiveXObject("MSXML2.XMLHTTP");
req.open("GET",reqstring,false);
req.send();

//Load response in XML Document
var doc = new ActiveXObject("MSXML2.DOMDocument");
doc.loadXML(req.responseText);
 //Traverse inside doc to retrieve values
 alert(data);
}
</script>

SharePoint Online: Get List data in XML format using Owssvr.dll
You can also PowerShell to retrieve List data in XML format from OWSSvr.dll
Import-Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking

#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
$ListName = "Contacts"
$ViewName = "All Items"

#Get Credentials to connect
$Cred= Get-Credential

Try {
    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
    $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)

    #Get Necessary Objects
    $Web = $Ctx.Web
    $List = $Web.Lists.GetByTitle($ListName)
    $View = $List.Views.getByTitle($ViewName)
    $Ctx.Load($Web)
    $Ctx.Load($List)
    $Ctx.Load($View)
    $Ctx.ExecuteQuery()

    #Request XML data throgh RPC
    $URL = "{0}/_vti_bin/owssvr.dll?Cmd=Display&List={1}&View={2}&Query=*&XMLDATA=TRUE" -f $Web.Url, $List.ID, $view.ID
    $WebClient = New-Object System.Net.WebClient 
    $WebClient.Credentials =  New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
    $WebClient.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f")
    $XML = $WebClient.DownloadString($URL)
    $WebClient.Dispose()
}
Catch {
    write-host -f Red "Error:" $_.Exception.Message
}

More Examples:
http://msdn.microsoft.com/en-us/library/ms478653.aspx
http://msdn.microsoft.com/en-us/library/ms416599.aspx
http://blogs.msdn.com/b/infopath/archive/2007/01/15/populating-form-data-from-sharepoint-list-views.aspx
http://sharepointfordeveloper.blogspot.co.uk/2012/03/sharepoint-rpc-protocols-examples-using.html
Using owssvr.dll to retrieve List data in XML format Using owssvr.dll to retrieve List data in XML format Reviewed by Unknown on February 17, 2012 Rating: 5

2 comments:

Please Login and comment to get your questions answered!

Powered by Blogger.