ADELIA |
VADELIA |
SADELIA |
WADELIA |
EADELIA |
(I/B) |
(I/B) (C/S) |
(B) (S) |
(I/B) (C/S) |
(B) (C/S) |
Section for use
All.
Syntax
XML_SELECT XmlIdentifierName XPATHPath NbValues
XPATHPath |
→ |
AdeliaXPATHPath | <AlphaConstant> | &<alpha variable> |
NbValues |
→ |
<Numerical variable> | None |
Description
Selects the nodes specified by the XPATH path and positions to the first node.
The XPATH selection path can be specified in the following forms:
- as an Adelia XPATH path,
- as a standard XPATH path as indicated in the alpha constant or alphanumerical variable.
The NbValues variable is optional. If it is specified, it must be a numerical variable into which the number of selected nodes is returned.
Managing namespaces:
- an element can be linked to a namespace provided that it has been prefixed or that it is within range of a default namespace.
- an attribute can be linked to a namespace only if it is prefixed.
To query an element or attribute linked to a namespace, you must first add a prefix definition in the current execution context using the XML_ADD_NS instruction. This instruction allows you to associate a prefix to a namespace identified by a URI. The prefix is then used to qualify an element or attribute name in the XPATH path.
Examples:
XML_ADD_NS xmlidf 'ha' 'urn:hardis:warehouse
XML_SELECT xmlidf /ha:bookstore/ha:book
XML_SELECT xmlidf /ha:book[@ha:gender]
When this instruction is executed, the *RETURN_CODE reserved word can take the following values:
0 (*NORMAL) |
Adelia successfully created the selection and positioned to a node. |
100 (*NOT_FOUND) |
No node matching the selection was found. |
1 |
Error: invalid XPATH path. |
13 |
Error: XML identifier not open. |
25 |
Error in registering a namespace prefix. |
Example
XML_SELECT xml1 /AdelDBG/PgmInfo
XML_GET_VAL xml1 name WNAME
XML_SELECT xml1 /AdelDBG/PgmInfo/Dlls/Dll WNBVAL
IF WNBVAL > 0
XML_SELECT xml1 /AdelDBG/PgmInfo/Dlls/Dll[WNBVAL]
XML_GET_VAL xml1 *TEXT WLAST_DLL
END
* To retrieve prefixed elements
XML_ADD_NS xml1 'ha' 'urn:xmlns:hardis:warehouse'
XML_SELECT xml1 /ha:bookstore/ha:books WNBVAL
IF WNBVAL > 0
XML_SELECT xml1 /ha:bookstore/ha:books[WNBVAL]
XML_GET_VAL xml1 *TEXT TextVar
END