フルパスで指定したノードの値を設定します。

構文

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

パラメータ

hXml
[in] XMLハンドル
nodePath
[in] フルパスを指定する文字列を指すポインタ。
value
[in] ノードに設定する文字列を指すポインタ。
ErrCode
[out] エラーコードを返す変数を指すポインタ。エラーコードが不要のときはNULLを指定します。

戻り値

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

解説

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

 ノードが見つかったときは、そのノードの値にvalueで指定された値を設定し、そのノードのXML_Node構造体を指すポインタを返します。

 フルパスの最後のノード以外の上位の中間ノードがすべて存在して一意に特定できたが、最後のノードだけが見つからなかったときは、新たにその名前のノードを追加してそのノードの値にvalueで指定された値を設定し、そのノードのXML_Node構造体を指すポインタを返します。

 複数のノードが見つかったときは関数が失敗し、ErrCodeに XML_NOT_UNIQUE_NODE を返します。

 見つかったノードが中間ノードだったときは関数が失敗し、ErrCodeに XML_NO_VALUE_IN_INTERMEDIATE_NODE を返します。

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

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

必要条件

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

関連事項



最終更新日:2021/10/21