• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 3220
  • Last Modified:

Xpath to extract Data from XML returned by Nintex webservice

I am developing a Nintex workflow which iterates through all the list items in a List View and terminate all the running workflows. The List views on which this workflow is going to run already have filters on it.

To get collection of all the list items in the List View, I am planning to call GetListItems method in Lists.asmx
      GetListItems take ListName and ViewName as parameters. But ViewName is actually 32 digit GUID. In my research I found GetViewCollection method returns all the views defined in a list.
      
My plan is to get collection of all the views in the list. (Both List Name and View Name (Display name of the view) is provided by the user).
Then I will compare Display Name of all the views in the collection with the name provided by user. When I find match I will take that GUID and plug it into Lists.GetListItems() to get collection of all the list items in that List view.

Eventually I will call TerminateWorkflowByNameForListItem() to terminate the workflow running on that itemID.

But I am stuck at the step where I am calling GetViewCollection method. It returns in XML which looks like this:

<Views xmlns="http://schemas.microsoft.com/sharepoint/soap/">

<View Name="{705D9879-6A17-4FF3-8D4A-AF1CC5E86605}" Type="HTML" DisplayName="All Items" Url="/sandbox/Lists/custom list test/AllItems.aspx" Level="1" BaseViewID="1" ContentTypeID="0x" ImageUrl="/_layouts/images/generic.png" />

<View Name="{0D9FC0C9-AE20-482D-AB1E-2A189AB8A0D1}" DefaultView="TRUE" MobileView="TRUE" MobileDefaultView="TRUE" Type="HTML" DisplayName="test_view" Url="/sandbox/Lists/custom list test/test_view.aspx" Level="1" BaseViewID="1" ContentTypeID="0x" ImageUrl="/_layouts/images/generic.png" />

<View Name="{D860A584-4EC0-473D-82FF-F717769C5D20}" Type="HTML" DisplayName="list id" Url="/sandbox/Lists/custom list test/list id.aspx" Level="1" BaseViewID="1" ContentTypeID="0x" ImageUrl="/_layouts/images/generic.png" />

<View Name="{19A48EAF-E644-49CB-B597-87B3A8584E10}" Type="HTML" DisplayName="Test view" Url="/sandbox/Lists/custom list test/Test view.aspx" Level="1" BaseViewID="1" ContentTypeID="0x" ImageUrl="/_layouts/images/generic.png" />

</Views>

Ideally I should be able to get collection of all ViewName (GUIDs) by using "Query XML" with Xpath expression like "//Views/View/Name" but it doesn't work.

I figured, the XML returned by GetViewCollection method is not a well formatted XML. "Query XML" likes the input to be something like:

<Views>
      <View>
            <Name> <\Name>
      <\View>
<\Views>

What should I do ? What could be Xpath expression to extract Name and DisplayName data from the above XML. Please help !
0
pratz09
Asked:
pratz09
1 Solution
 
Kevin CrossChief Technology OfficerCommented:
Hi. Name is an attribute, so you would want //Views/View/@Name. Similarly, //Views/View/@DisplayName. Hope that helps!
0
 
pratz09Author Commented:
That's right. I already had value for DisplayName, so to find Name for a specific DisplayName I did:

//Views/View[@DisplayName= "test_view"]/@Name

Thanks a lot !
0

Featured Post

Get free NFR key for Veeam Availability Suite 9.5

Veeam is happy to provide a free NFR license (1 year, 2 sockets) to all certified IT Pros. The license allows for the non-production use of Veeam Availability Suite v9.5 in your home lab, without any feature limitations. It works for both VMware and Hyper-V environments

Tackle projects and never again get stuck behind a technical roadblock.
Join Now