Search code examples
xmlxpathsoabpelxquery-3.0

How to fetch data from any data type BPEL?[xpath/xquery]


I am not able to fetch data from XSD: any data type in the BPEL Subscribe to the Event process

<?xml version="1.0" encoding="UTF-8"?>
<inputVariable0>
   <taskAssignedMessage xmlns="http://xmlns.oracle.com/bpel/workflow/taskService">
      <action>INITIATE</action>
      <task xmlns="http://xmlns.oracle.com/bpel/workflow/task">
         <title>Self-Register User Request ID-216025</title>
         <payload>
            <RequestID>999</RequestID>
            <RequestModel>Self-Register User</RequestModel>
            <RequestTarget />
            <RequesterDetails xmlns="http://xmlns.oracle.com/request/RequestDetails">
               <ns0:Login xmlns:ns0="http://xmlns.oracle.com/request/RequestDetails" />
               <ns0:DisplayName xmlns:ns0="http://xmlns.oracle.com/request/RequestDetails" />
            </RequesterDetails>
            <BeneficiaryDetails xmlns="http://xmlns.oracle.com/request/RequestDetails">
               <ns0:DisplayName xmlns:ns0="http://xmlns.oracle.com/request/RequestDetails">None</ns0:DisplayName>
            </BeneficiaryDetails>
            <ObjectDetails xmlns="http://xmlns.oracle.com/request/RequestDetails">
               <ns0:attributes xmlns:ns0="http://xmlns.oracle.com/request/RequestDetails" />
            </ObjectDetails>
            <OtherDetails xmlns="http://xmlns.oracle.com/request/RequestDetails" />
            <RequesterDisplayName />
            <BeneficiaryDisplayName>None</BeneficiaryDisplayName>
            <Requester />
            <CatalogData xmlns="http://xmlns.oracle.com/RequestServiceApp/RequestDataService/CatalogData" />
            <RegistrationRequestElement xmlns="http://www.approver-notification.org">
               <Approver_UserId>Manager</Approver_UserId>
               <Approver_divisionID>DIV310021</Approver_divisionID>
               <Approver_isAboveJE>NO</Approver_isAboveJE>
            </RegistrationRequestElement>
            <Discoms>ABC</Discoms>
            <Post>OA_FIRST</Post>
            <FirstName>Test</FirstName>
            <LastName>Nikita</LastName>
            <RequestType>Self-Register User</RequestType>
         </payload>
      </task>
   </taskAssignedMessage>
</inputVariable0>

I need to fetch data from RegistrationRequestElement/Approver_UserId. If anyone has any idea about the same, please help me out. @Joe


Solution

  • The xml you pasted has too many repetitive namespace declarations. Assuming you have no control over that, try using this xpath expression:

    //*[name()='inputVariable0']//*[name()='taskAssignedMessage']//*[name()='task']//*[name()='RegistrationRequestElement']/*[name()='Approver_UserId']/data(.)
    

    Output:

    Manager