Share this page

# lr_xml_get_values

XML Functions (lr_xml)

Retrieves values of XML elements found by a query.

    int lr_xml_get_values( <List of specifications> [, <List of optional specifications> ] [, LAST]);

List of specifications | For the following list of required specifications, use the following string format:"Specification=value" XML: the XML Input String to query ValueParam: the name of the output parameter which stores the result of the query. If it does not exist, it is created. Query: the XML Query or Fast Query on the input string XML. You can specify elements or attributes.
List of optional specifications | For the following list of optional specifications, use the following string format:"Specification=value" SelectAll: If "yes", all elements matching the query will be processed. If "no", only the first match will be processed. Default is "no". See Multiple Query Matching NotFound: See Continue on Error
LAST | A marker which indicates the end of the List of optional specifications

The lr_xml_get_values function queries the XML input string XML for values matching the Query criteria.

## Return Values

See Return Values

## Parameterization

See Parameterization

## Example 1

The following example uses lr_xml_get_values to search for the name of an employee.

First, a simple XML string is stored in parameter XML_Input_Param. Then, lr_xml_get_values is invoked with the XPath query string "/employee/name". This query is then processed on the XML_Input_Param parameter string. The result of the query is stored in the OutputParam parameter. The value of OutputParam is evaluated using lr_eval_string.

Copy code

    #include "as_web.h"
    char *xml_input=
         "<employee>"
              "<name>John Smith</name>"
              "<cubicle>227</cubicle>"
         "</employee>";

    Action() {

         lr_save_string(xml_input, "XML_Input_Param"); // Save input as parameter

         lr_xml_get_values("XML={XML_Input_Param}",
              "ValueParam=OutputParam",
              "Query=/employee/name",
              LAST );

         lr_output_message(lr_eval_string("Query result = {OutputParam}"));

         return 0;
    }

Example: Output:
Action.c(13): "lr_xml_get_values" was successful, 1 match processed
Action.c(18): Query result = John Smith

## Example 2

The following example is similar to Example 1 except that multiple values are retrieved. The query retrieves all telephone extensions from the XML input string, xml_input.

Copy code

    #include "as_web.h"

    char * xml_input =
    "<acme_org>"
         " <accounts_dept>"
              "<employee>"
                   " <name>John Smith</name>"
                   "<cubicle>227</cubicle>"
                   "<extension>2145</extension>"
              "</employee>"
         "</accounts_dept>"
         "<engineering_dept>"
              "<employee>"
                   "<name>Sue Jones</name>"
                   "<extension>2375</extension>"
              "</employee>"
         "</engineering_dept>"
    "</acme_org>";

    Action() {

         int i, NumOfValues;
         char buf[64];

         lr_save_string(xml_input, "XML_Input_Param"); // Save input as parameter

         NumOfValues= lr_xml_get_values("XML={XML_Input_Param}",
              "ValueParam=OutputParam",
              "Query=/acme_org/*/employee/extension",
              "SelectAll=yes", LAST );

         for ( i = 0; i < NumOfValues; i++) { /* Print multiple values of OutputParam */

              sprintf (buf, "Retrieved value %d : {OutputParam_%d}", i+1, i+1);
              lr_output_message(lr_eval_string(buf));
         }

         return 0;
    }

Example: Output:
Action.c(34): Retrieved value 1 : 2145
Action.c(34): Retrieved value 2 : 2375

For additional examples, see Examples: common actions.

Tips to improve your search results... VuGen Function Reference Version 26.1-26.3 Function Reference 26.1-26.3 All View Local Help Center View Online Help Center Version: