フルパスを指定してノードを検索します。

構文

XML_Node *XML_FindNodeByPath(
  XML_HANDLE hXml,
  const char *nodePath,
  int *ErrCode
);

パラメータ

hXml
[in] XMLハンドル
nodePath
[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 が返されます。
<request_message> ← ルートノード
  <issuer>SALES0001</issuer>
  <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>
</request_message>

 関数が失敗したときは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