Search for a node by specifying a parent node and a relative path.

Syntax

XML_Node *XML_FindChildNodeByPath(
  XML_HANDLE hXml,
  XML_Node *parentNode,
  const char *childNodePath,
  int *ErrCode
);

Parameters

hXml
[in] XML handle
parentNode
[in] A pointer to the XML_Node structure of the parent node.
childNodePath
[in] A pointer to a string that specifies the relative path.
ErrCode
[out] A pointer to a variable that returns an error code. Specify NULL when no error code is required.

Return value

Returns a pointer to the XML_Node structure if the function succeeds, otherwise NULL.

Remarks

Finds a node according to the specified parent node and the relative path.

If a node is found, returns a pointer to the XML_Node structure of the node.

If multiple nodes are found, returns a pointer to the XML_Node structure of the first node found and returns following error code in ErrCode.

Error codeDescription
XML_NOT_UNIQUE_NODEMultiple nodes with the same name were found.

Example: multiple nodes with the specified name

If you specify a "ship_order" node as the parent node and "orders/order" as the relative path, it returns a pointer to the XML_Node structure of the first "order" node and returns XML_NOT_UNIQUE_NODE in ErrCode.
...
<ship_order> ← Parent node
  <date>2021/09/10</date>
  <customer>
    <customerID>C00001</customerID>
    <name>A corporation</name>
  </customer>
  <orders>
    <order> ← Search result (XML_NOT_UNIQUE_NODE)
      <productID>PID0000100</productID>
      <name>A product</name>
    </order>
    <order> ← Another node that matches the specified name
      <productID>PID0000200</productID>
      <name>B product</name>
    </order>
  </orders>
</ship_order>
...

If the function fails, it returns NULL and ErrCode returns the following error code:

Error codeDescription
XML_INVALID_PARAMETER_ERRORParameter error
XML_MEMORY_ALLOCATION_ERRORMemory allocation error
XML_INVALID_XML_OBJECT_ERRORInvalid XML handle
XML_INVALID_NODE_OBJECT_ERRORInvalid node is specified.
XML_NOT_FOUNDThe node with the specified name was not found.
XML_NOT_UNIQUE_INTERMEDIATE_NODEMultiple nodes with the specified name were found in the middle of the node path.

Requirements

Header file:
XML.h
CodeConversion.h : ver. 1.1.1 or later.
Library file:
libXML.a
libCodeConversion.a : ver.1.1.1 or later
libSTARTUPOPH5000.a

See also

Last updated: 2021/10/21