親ノードと相対パスを指定してノードを検索します。

構文

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

パラメータ

hXml
[in] XMLハンドル
parentNode
[in] 親ノードのXML_Node構造体を指すポインタ。
childNodePath
[in] 相対パスを指定する文字列を指すポインタ。
ErrCode
[out] エラーコードを返す変数を指すポインタ。エラーコードが不要のときはNULLを指定します。

戻り値

 関数が成功したらXML_Node構造体を指すポインタを、それ以外はNULLを返します。

解説

 親ノードと相対パスの指定に従ってノードを検索します。

 ノードが見つかったときは、そのノードのXML_Node構造体を指すポインタを返します。

 複数のノードが見つかったときは、最初に見つかったノードのXML_Node構造体を指すポインタを返し、ErrCodeには次のエラーコードを返します。

エラーコード説明
XML_NOT_UNIQUE_NODE同じ名前のノードが複数ある。

(例) 同じ名前のノードが複数ある場合

 親ノードに"ship_order"ノードを指定し、相対パスに"orders/order"を指定すると、最初の"order"ノードのXML_Node構造体を指すポインタが返され、ErrCodeには XML_NOT_UNIQUE_NODE が返されます。
...
<ship_order> ← 指定の親ノード
  <date>2021/09/10</date>
  <customer>
    <customerID>C00001</customerID>
    <name>A corporation</name>
  </customer>
  <orders>
    <order> ← 検索結果のノード (XML_NOT_UNIQUE_NODE)
      <productID>PID0000100</productID>
      <name>A product</name>
    </order>
    <order> ← 指定の名前と一致する別のノード
      <productID>PID0000200</productID>
      <name>B product</name>
    </order>
  </orders>
</ship_order>
...

 関数が失敗したときはNULLを返し、ErrCodeには次のエラーコードを返します。

エラーコード説明
XML_INVALID_PARAMETER_ERRORパラメーターエラー
XML_MEMORY_ALLOCATION_ERRORメモリーアロケーションエラー
XML_INVALID_XML_OBJECT_ERROR不正なXMLハンドルが指定された。
XML_INVALID_NODE_OBJECT_ERROR不正なノードが指定された。
XML_NOT_FOUND指定した名前のノードが見つからなかった。
XML_NOT_UNIQUE_INTERMEDIATE_NODEノードパスの途中の階層で、指定された名前のノードが複数検出された。

必要条件

ヘッダファイル:
XML.h
CodeConversion.h : ver.1.1.1以降
ライブラリファイル:
libXML.a
libCodeConversion.a : ver.1.1.1以降
libSTARTUPOPH5000.a

関連事項

最終更新日:2021/10/21