JunkBox_Lib++ (for Windows) 1.10.1
Loading...
Searching...
No Matches
txml.h
Go to the documentation of this file.
1#ifndef __JBXL_TINY_XML_H_
2#define __JBXL_TINY_XML_H_
3
24#include "tools.h"
25#include "ttree.h"
26#include "jbxl_state.h"
27
28
104typedef tTree tXML;
105
106
107// ノード種別 (ldat.id)
108#define XML_ANCHOR_NODE JBXL_STATE_ANCHOR
109#define XML_NAME_NODE 1
110#define XML_CONTENT_NODE 2
111#define XML_DOC_NODE 3
112#define XML_COMMENT_NODE 4
113#define XML_DATA_NODE 5
114#define XML_PROCESS_NODE 6
115
116// XML Format
117#define XML_ONELINE_FORMAT 0
118#define XML_CRLF_FORMAT 1
119#define XML_TAB_FORMAT 2
120#define XML_SPACE_FORMAT 3
121#define XML_SPACE2_FORMAT 3
122#define XML_SPACE4_FORMAT 4
123
124// 代用ノード名 (ldat.key.buf)
125#define XML_COMMENT_NODE_KEY "@COMMENT_NODE"
126#define XML_DATA_NODE_KEY "@DATA_NODE"
127
128
129
131// XML Functions
133#define new_xml_node() new_tTree_node()
134#define new_xml() new_tTree_node()
135#define new_xml_anchor_node() new_tTree_anchor_node()
136#define del_xml_anchor(t) del_tTree_anchor_node((t))
137#define del_xml_anchor_nodet() del_tTree_anchor_node((t))
138
139
140// Paser
141tXML* xml_parse(char* pp);
142tXML* xml_parse_file(const char* pp);
143tXML* xml_parse_seq(tXML* xml, char* pp);
144tXML* xml_main_parse(tXML* xml, char* pp, int skip);
145
146int xml_parse_start_node(char* pp, char** node_name, char** node_attr, int* node_end);
147int xml_parse_end_node(char* pp, char** node_name);
148int xml_parse_content(char* pp, char** content);
149int xml_parse_comment_node(char* pp, char** comment);
150int xml_parse_data_node(char* pp, char** data);
151int xml_parse_processing_node(char* pp, char** node_name, char** node_attr);
152tList* xml_parse_attr(char* pp);
153
154void close_xml(tXML* pp);
155int isnot_xml_name(unsigned char* pp);
156
158#define find_xml_top(p) find_tList_top(p)
159#define find_xml_end(p) find_tTree_end(p)
160
161// 逆パース
162Buffer xml_inverse_parse(tXML* pp, int mode);
163void xml_open_node_Buffer (tXML* pp, Buffer* buf, int mode, int indent);
164void xml_close_node_Buffer(tXML* pp, Buffer* buf, int mode, int indent);
165void xml_attr_to_Buffer(tList* pp, Buffer* buf);
166void _xml_to_Buffer(tXML* pp, Buffer* buf, int mode, int indent);
167
168// Operation
169tXML* init_xml_doc(void);
170char* get_first_xml_nodename(tXML* xml);
171tXML* add_xml_node(tXML* xml, const char* name);
172tXML* insert_xml_node(tXML* xml, const char* name);
173
174tXML* add_xml_attr(tXML* xml, const char* attr);
175tXML* add_xml_attr_str (tXML* xml, const char* name, const char* value);
176tXML* add_xml_attr_int (tXML* xml, const char* name, int value);
177tXML* add_xml_attr_float (tXML* xml, const char* name, float value);
178tXML* add_xml_attr_double(tXML* xml, const char* name, double value);
179
180tXML* add_xml_content_node(tXML* xml, const char* value);
181tXML* append_xml_content_node(tXML* xml, const char* value);
182tXML* set_xml_content_node(tXML* xml, const char* value);
183int add_xml_content_area(tXML* xml, int len);
185#define join_xml(a, b) add_tTree_node((a), (b))
186
187Buffer make_xml_attr_bystr (const char* name, const char* value);
188Buffer make_xml_attr_byint (const char* name, int value);
189Buffer make_xml_attr_byfloat (const char* name, float value);
190Buffer make_xml_attr_bydouble(const char* name, double value);
192#define make_xml_attr_str(n, v) make_xml_attr_bystr ((n), (v))
193#define make_xml_attr_int(n, v) make_xml_attr_byint ((n), (v))
194#define make_xml_attr_float(n, v) make_xml_attr_byfloat ((n), (v))
195#define make_xml_attr_double(n, v) make_xml_attr_bydouble((n), (v))
196
197char* xml_get_node_content(tXML* node);
198char* xml_get_node_attr(tXML* node, const char* attr);
199
200tXML* dup_merge_xml(tXML* pp, tXML* tp);
202#define free_xml(p) free_tTree_node((p))
203#define del_xml(p) del_tTree((p))
204#define del_xml_node(p) del_tTree_node((p))
205#define del_all_xml(p) del_all_tTree((p))
206#define del_sisters_xml(p) del_sisters_tTree((p))
207#define del_sisters_children_xml(p) del_sisters_children_tTree((p))
208
209void print_xml(FILE* fp, tXML* pp, int mode);
210void print_xml_tree(FILE* fp, tXML* pp, const char* space);
211void print_xml_node(FILE* fp, tXML* pp);
212void print_sister_xml_tree(FILE* fp, tXML* pp, const char* space);
214#define print_tXML(f, x) print_tTree((f), (x))
215#define print_tXML_tree(f, x, s) print_tTree_tree((f), (x), (s))
216
217
219// Search and Get/Set 操作対象は1番最初に一致したもの
220
221tXML* get_xml_node(tXML* pp, tXML* pt);
222int set_xml_node(tXML* pp, tXML* pt, const char* val);
223int set_xml_end_node(tXML* pp, tXML* pt);
224
225tXML* get_xml_attr_node(tXML* pp, const char* key, const char* val);
226
227tXML* get_xml_content(tXML* pp, tXML* pt);
228int set_xml_content(tXML* pp, tXML* pt, const char* val);
229tList* get_xml_attr(tXML* pp, tXML* pt);
230int set_xml_attr(tXML* pp, tXML* pt, tList* at);
231
232tXML* get_xml_node_bystr(tXML* pp, const char* str);
233int set_xml_node_bystr(tXML* pp, const char* str, const char* val);
234int set_xml_end_node_bystr(tXML* pp, const char* str);
235
236tXML* get_xml_content_bystr(tXML* pp, const char* str);
237int set_xml_content_bystr(tXML* pp, const char* str, const char* val);
238tList* get_xml_attr_bystr(tXML* pp, const char* str);
239int set_xml_attr_bystr(tXML* pp, const char* pt, tList* at);
240
241int get_xml_int_content(tXML* pp, tXML* pt);
242int get_xml_int_content_bystr(tXML* pp, const char* str);
243float get_xml_float_content(tXML* pp, tXML* pt);
244float get_xml_float_content_bystr(tXML* pp, const char* str);
245double get_xml_double_content(tXML* pp, tXML* pt);
246double get_xml_double_content_bystr(tXML* pp, const char* str);
247char* get_xml_char_content(tXML* pp, tXML* pt);
248char* get_xml_char_content_bystr(tXML* pp, const char* str);
249
250char* get_xml_char_attr(tXML* pp, tXML* pt, const char* attr);
251char* get_xml_char_attr_bystr(tXML* pp, const char* str, const char* attr);
252int get_xml_int_attr(tXML* pp, tXML* pt, const char* attr);
253int get_xml_int_attr_bystr(tXML* pp, const char* str, const char* attr);
254double get_xml_double_attr(tXML* pp, tXML* pt, const char* attr);
255double get_xml_double_attr_bystr(tXML* pp, const char* str, const char* attr);
256
257int replace_xml_content(tXML*pp, tXML* pt, const char* src, const char* dst);
258int replace_xml_content_bystr(tXML*pp, const char* str, const char* src, const char* dst);
260#define get_xml_node_str(p, s) get_xml_node_bystr((p), (s))
261#define set_xml_node_str(p, s, v) set_xml_node_bystr((p), (s), (v))
262#define set_xml_end_node_str(p, s) set_xml_end_node_bystr((p), (s))
263#define get_xml_content_str(p, s) get_xml_content_bystr((p), (s))
264#define set_xml_content_str(p, s, v) set_xml_content_bystr((p), (s), (v))
265#define get_xml_attr_str(p, s) get_xml_attr_bystr((p), (s))
266#define set_xml_attr_str(p, t, a) set_xml_attr_bystr((p), (t), (a))
267#define replace_xml_content_str(p, t, r, d) replace_xml_content_bystr((p), (t), (r), (d))
269#define get_xml_int_content_str(p, s) get_xml_int_content_bystr((p), (s))
270#define get_xml_double_content_str(p, s) get_xml_double_content_bystr((p), (s))
271#define get_xml_char_content_str(p, s) get_xml_char_content_bystr((p), (s))
272#define get_xml_char_attr_str(p, s, v) get_xml_char_sttr_bystr((p), (s), (v))
274#define get_xml_str_content(p, s) get_xml_char_content((p), (s))
275#define get_xml_str_content_str(p, s) get_xml_char_content_bystr((p), (s))
276#define get_xml_str_content_bystr(p, s) get_xml_char_content_bystr((p), (s))
277#define get_xml_str_attr(p, s) get_xml_char_attr((p), (s))
278#define get_xml_str_attr_str(p, s, v) get_xml_char_attr_bystr((p), (s), (v))
279#define get_xml_str_attr_bystr(p, s, v) get_xml_char_attr_bystr((p), (s), (v))
280#define get_xml_int_attr_str(p, s, v) get_xml_int_attr_bystr((p), (s), (v))
281#define get_xml_double_attr_str(p, s, v) get_xml_double_attr_bystr((p), (s), (v))
282
283// Operation for Multi Node
284tList* get_xml_node_list(tXML* pp, tXML* pt);
286int set_xml_content_list(tXML* pp, tXML* pt, const char* content);
287
288tList* get_xml_node_list_bystr(tXML* pp, const char* str);
289tList* get_xml_content_list_bystr(tXML* pp, const char* str);
290int set_xml_content_list_bystr(tXML* pp, const char* str, const char* content);
292#define get_xml_node_list_str(p, s) get_xml_node_list_bystr((p), (s))
293#define get_xml_content_list_str(p, s) get_xml_content_list_bystr((p), (s))
294#define set_xml_content_list_str(p, s, c) set_xml_content_list_bystr((p), (s), (c))
295
296
298// Search XML Node (tTree用の関数とほぼ同じ).ツリーを返す.
299
300int find_match_xml(tXML* pp, tXML* pt);
304
305int check_match_xml(tXML* tp, tXML* tr);
306tXML* cmp_sisters_xml(tXML* tp, tXML* tr);
307
308
310// Simple Node Functions.
311
312int get_node_integer(tXML* tp, const char* name, int no);
313Buffer get_node_content(tXML* tp, const char* name, int no);
314
315int return_exist_node(tXML* tp, const char* name, int no, Buffer* value);
316
317int replace_all_node_integer (tXML* tp, const char* name, int src, int dst);
318int replace_all_node_contents(tXML* tp, const char* name, const char* src, const char* dst);
319int _replace_all_node_contents_rcsv(tXML* tp, const char* name, const char* src, const char* dst);
320
321int replace_all_node_byid(tXML* tp, const char* src, const char* dst, int id);
322int _replace_all_node_byid_rcsv(tXML* tp, const char* src, const char* dst, int id);
323
324
326// XML-RPC
327
328Buffer xml_rpc_request_pack(const char* method, tXML* xml);
329tXML* xml_rpc_add_member(tXML* xml, char* name, char* value, char* kind);
331tXML* xml_rpc_add_array(tXML* xml, tXML* arry);
333
334
335#endif // __JBXL_TINY_XML_H_
JunkBox_Lib 状態ヘッダ
汎用ツールヘッダ
Tiny Tree Graph 構造ライブラリヘッダ
double get_xml_double_content(tXML *pp, tXML *pt)
get_xml_content() を使用し,XML コンテンツの内容を double型で返す.
Definition txml.cpp:2168
char * get_xml_char_attr_bystr(tXML *pp, const char *str, const char *attr)
get_xml_char_attr() の _bystr バージョン.free() してはいけない.
Definition txml.cpp:2533
tXML * xml_main_parse(tXML *xml, char *pp, int skip)
部分的な XMLデータを解釈して,tXMLのツリー構造に格納する.パーサの内部的なメイン関数.
Definition txml.cpp:189
void _xml_to_Buffer(tXML *pp, Buffer *buf, int mode, int indent)
xml_inverse_parse()用の補助関数.
Definition txml.cpp:928
float get_xml_float_content(tXML *pp, tXML *pt)
get_xml_content() を使用し,XML コンテンツの内容を float型で返す.
Definition txml.cpp:2153
void print_sister_xml_tree(FILE *fp, tXML *pp, const char *space)
XMLツリーの表示.ppの姉妹ノードも出力する.
Definition txml.cpp:1798
tXML * xml_rpc_end_array(tXML *xml)
配列データを閉じて,送信用データを生成する.
Definition txml.cpp:3490
int get_node_integer(tXML *tp, const char *name, int no)
tp中のXMLデータから no番目のノード '<node_name>node_content(整数)</node_name>' の node_content(整数)を得る.
Definition txml.cpp:3147
tXML * append_xml_content_node(tXML *xml, const char *value)
XMLツリーのxml の直下のコンテントノードにコンテンツを追加する.
Definition txml.cpp:1313
void print_xml_node(FILE *fp, tXML *pp)
MLのノード情報を表示する.デバッグ用.
Definition txml.cpp:1719
tXML * get_xml_node(tXML *pp, tXML *pt)
同じパターンの枝を探し,ptに最初に一致した枝の,ptの最後のノードに対応したノードへのポインタを返す.
Definition txml.cpp:1874
tXML * xml_rpc_add_member(tXML *xml, char *name, char *value, char *kind)
XML-RPC の <member> データを作って,繋げていく.
Definition txml.cpp:3408
int set_xml_end_node_bystr(tXML *pp, const char *str)
set_xml_end_node(tXML* pp, tXML* pt) の _bystr バージョン
Definition txml.cpp:2391
tXML * add_xml_attr_double(tXML *xml, const char *name, double value)
xml に属性名 name, double型実数の属性値 value を持つノードを追加する.
Definition txml.cpp:1471
int return_exist_node(tXML *tp, const char *name, int no, Buffer *value)
bufの中に ノード '<name>content</name>' が存在するかどうかチェックする.
Definition txml.cpp:3168
int xml_parse_comment_node(char *pp, char **comment)
XMLのコメントノードを処理する.
Definition txml.cpp:730
int set_xml_node_bystr(tXML *pp, const char *str, const char *val)
set_xml_node(tXML* pp, tXML* pt, const char* val) の _bystr バージョン
Definition txml.cpp:2372
tXML * add_xml_attr_str(tXML *xml, const char *name, const char *value)
xml に属性名 name, 文字列の属性値 value を持つノードを追加する.
Definition txml.cpp:1420
int replace_xml_content(tXML *pp, tXML *pt, const char *src, const char *dst)
get_xml_content() を使用し,XMLキーの src部分を dstで書き換える.
Definition txml.cpp:2328
tXML * set_xml_content_node(tXML *xml, const char *value)
XMLツリーのxml の直下のコンテントノードの値を置き換える.
Definition txml.cpp:1346
float get_xml_float_content_bystr(tXML *pp, const char *str)
get_xml_float_content(tXML* pp, tXML* pt) の _bystr バージョン.
Definition txml.cpp:2446
int replace_all_node_contents(tXML *tp, const char *name, const char *src, const char *dst)
XMLツリー pp内で ノード名が nameである全てのノードのコンテントを,srcから dstに書き換える.
Definition txml.cpp:3219
int find_match_xml(tXML *pp, tXML *pt)
ツリー pp内で ツリー ptと同じパターンの枝を探す.姉妹ツリーも検索するので注意.
Definition txml.cpp:2848
void print_xml_tree(FILE *fp, tXML *pp, const char *space)
XMLツリーをそのままツリー表示する.デバッグ用.
Definition txml.cpp:1759
tXML * dup_merge_xml(tXML *pp, tXML *tp)
XMLツリー ppの直下にXMLツリー tpを複製する.
Definition txml.cpp:1632
tXML * xml_parse_file(const char *pp)
ファイルから読み込んでパースする.
Definition txml.cpp:94
char * xml_get_node_attr(tXML *node, const char *attr)
属性値を持つノードのポインタから,指定された属性値へのポインタを返す.free() してはいけない.
Definition txml.cpp:1606
tXML * xml_rpc_add_array(tXML *xml, tXML *arry)
<value><struct> データから 配列データ <data>...</data> を作って繋げていく.
Definition txml.cpp:3469
double get_xml_double_attr_bystr(tXML *pp, const char *str, const char *attr)
get_xml_double_attr() の _bystr バージョン.
Definition txml.cpp:2579
void print_xml(FILE *fp, tXML *pp, int mode)
XMLの表示(出力).
Definition txml.cpp:1691
int _replace_all_node_byid_rcsv(tXML *tp, const char *src, const char *dst, int id)
replace_all_node_byid() の補助関数
Definition txml.cpp:3314
tList * _find_match_xml_endlist_rcsv(tXML *pp, tXML *pt, tXML *te)
find_match_xml_endlist() の補助関数
Definition txml.cpp:2907
char * get_xml_char_content_bystr(tXML *pp, const char *str)
get_xml_char_content(tXML* pp, tXML* pt) の _bystr バージョン.free() してはいけない.
Definition txml.cpp:2479
tXML * xml_rpc_end_member(tXML *xml)
<struct><member> データを閉じて,<value> データを作り出す.
Definition txml.cpp:3451
int replace_all_node_integer(tXML *tp, const char *name, int src, int dst)
XMLツリー pp内で ノード名が nameである全てのノードのコンテント(整数)を,srcから dstに書き換える.
Definition txml.cpp:3192
int get_xml_int_attr_bystr(tXML *pp, const char *str, const char *attr)
get_xml_int_attr() の _bystr バージョン.
Definition txml.cpp:2551
tXML * xml_parse_seq(tXML *xml, char *pp)
部分的な XMLデータを解釈して,tXMLのツリー構造に格納する.断片的にXMLデータを入力する場合に使用する.
Definition txml.cpp:135
int set_xml_attr_bystr(tXML *pp, const char *pt, tList *at)
set_xml_attr(tXML* pp, tXML* pt, tList* at) の _bystr バージョン.
Definition txml.cpp:2605
int get_xml_int_content_bystr(tXML *pp, const char *str)
get_xml_int_content(tXML* pp, tXML* pt) の _bystr バージョン
Definition txml.cpp:2430
int set_xml_attr(tXML *pp, tXML *pt, tList *at)
同じパターンの枝を探し,ptに最初に一致した枝の,ptの最後のノードに対応したノードのノードの属性としてatの値をコピーする.
Definition txml.cpp:2307
tXML * get_xml_node_bystr(tXML *pp, const char *str)
get_xml_node(tXML* pp, tXML* pt) の _bystr バージョン
Definition txml.cpp:2353
tList * get_xml_content_list_bystr(tXML *pp, const char *str)
get_xml_conetnt_list_bystr() の _bystr バージョン.
Definition txml.cpp:2780
Buffer xml_rpc_request_pack(const char *method, tXML *xml)
XML-RPC用のデータを生成する.
Definition txml.cpp:3376
char * get_first_xml_nodename(tXML *xml)
XMLツリーの最初のノードの名前を返す.
Definition txml.cpp:1491
int set_xml_content_list(tXML *pp, tXML *pt, const char *content)
get_xml_content_list() で検出したコンテントを, content で置き換える.
Definition txml.cpp:2731
int xml_parse_start_node(char *pp, char **node_name, char **node_attr, int *node_end)
XMLの開始ノードを処理する.
Definition txml.cpp:371
int set_xml_end_node(tXML *pp, tXML *pt)
同じパターンの枝を探し,ptに最初に一致した枝の,ptの最後のノードに対応したノードへのポインタを返す.
Definition txml.cpp:1956
int check_match_xml(tXML *tp, tXML *tr)
XMLツリー tpが XMLツリー trと同じかどうかを検査する.
Definition txml.cpp:2991
Buffer make_xml_attr_byfloat(const char *name, float value)
属性名 name, float型実数の属性値 value を持つ Buffer型変数を作成する.
Definition txml.cpp:1552
Buffer make_xml_attr_bystr(const char *name, const char *value)
属性名 name, 文字列の属性値 value を持つ Buffer型変数を作成する.
Definition txml.cpp:1517
int set_xml_content_list_bystr(tXML *pp, const char *str, const char *content)
set_xml_content_list_bystr() の _bystr バージョン.
Definition txml.cpp:2800
int set_xml_node(tXML *pp, tXML *pt, const char *val)
同じパターンの枝を探し,ptに最初に一致した枝の,ptの最後のノード対応したノードにノード名をコピーする.
Definition txml.cpp:1921
int xml_parse_processing_node(char *pp, char **node_name, char **node_attr)
XMLのプロセッシングノードを処理する
Definition txml.cpp:654
void close_xml(tXML *pp)
パースエラーを起こしたツリーを強制的に正常化する.
Definition txml.cpp:836
void xml_attr_to_Buffer(tList *pp, Buffer *buf)
リストに保存されたノードの属性をテキストへ戻す.
Definition txml.cpp:1178
tXML * add_xml_attr(tXML *xml, const char *attr)
xml に属性(attr)を追加する.
Definition txml.cpp:1401
int set_xml_content_bystr(tXML *pp, const char *str, const char *val)
set_xml_content(tXML* pp, tXML* pt, char* val) の _bystr バージョン
Definition txml.cpp:2494
tList * get_xml_attr(tXML *pp, tXML *pt)
同じパターンの枝を探し,ptに最初に一致した枝の,ptの最後のノードに対応したノードのノード属性値へのリストを altp に入れて返す.
Definition txml.cpp:2207
double get_xml_double_content_bystr(tXML *pp, const char *str)
get_xml_double_content(tXML* pp, tXML* pt) の _bystr バージョン.
Definition txml.cpp:2462
tXML * add_xml_attr_float(tXML *xml, const char *name, float value)
xml に属性名 name, float型実数の属性値 value を持つノードを追加する.
Definition txml.cpp:1454
int replace_xml_content_bystr(tXML *pp, const char *str, const char *src, const char *dst)
replace_xml_content(tXML*pp, tXML* pt, char* src, char* dst) の _bystr バージョン.
Definition txml.cpp:2624
int replace_all_node_byid(tXML *tp, const char *src, const char *dst, int id)
XMLツリー pp内で ノードの種別が idである全てのノードの内容を srcから dstに書き換える.
Definition txml.cpp:3291
int xml_parse_data_node(char *pp, char **data)
XMLのデータノード(その他エレメントノードなど)を処理する.
Definition txml.cpp:773
tXML * insert_xml_node(tXML *xml, const char *name)
XMLツリーのxml の直下(姉妹の一番上:長子)にノード(属性は指定しない)を挿入する.
Definition txml.cpp:1242
int get_xml_int_content(tXML *pp, tXML *pt)
get_xml_content() を使用し,XML コンテンツの内容を int型で返す.
Definition txml.cpp:2138
tXML * add_xml_node(tXML *xml, const char *name)
XMLツリーのxml の直下(姉妹の一番下:末っ子)にノード(属性は指定しない)を挿入する.
Definition txml.cpp:1219
tXML * xml_parse(char *pp)
文字列のXMLデータを解釈して,tXMLのツリーを生成する.
Definition txml.cpp:48
tList * xml_parse_attr(char *pp)
XMLのノード属性を解釈して,リスト(tList)にする.
Definition txml.cpp:559
char * get_xml_char_content(tXML *pp, tXML *pt)
get_xml_content() を使用し,XML コンテンツの内容を char*型で返す.free() してはいけない.
Definition txml.cpp:2183
tXML * find_match_xml_end_node(tXML *pp, tXML *pt)
XMLツリー pp内で XMLツリー ptと同じパターンの枝を探し,ptの最後のノードに対応する pp内のノードへのポインタを返す.
Definition txml.cpp:2948
tList * get_xml_content_list(tXML *pp, tXML *pt)
XMLツリー pp内で XMLツリー ptと同じパターンの枝を探し,ptに一致した枝の,ptの最後のノードに対応するノードのコンテントへのポインタをリストに格納して返す.
Definition txml.cpp:2691
int add_xml_content_area(tXML *xml, int len)
xml に空のコンテントノードを追加する.
Definition txml.cpp:1376
void xml_close_node_Buffer(tXML *pp, Buffer *buf, int mode, int indent)
ツリー中のXMLのクローズノードのデータを元の書式に戻して Bufferに格納する.
Definition txml.cpp:1144
int isnot_xml_name(unsigned char *pp)
XML名として不適切かどうかを大まかに判断する.
Definition txml.cpp:810
Buffer get_node_content(tXML *tp, const char *name, int no)
tp中のXMLデータから no番目のノード '<name>node_content</name>' のnode_contentのコピーを得る.
Definition txml.cpp:3119
tXML * init_xml_doc(void)
XML のドキュメントヘッダを作成する.
Definition txml.cpp:1203
int get_xml_int_attr(tXML *pp, tXML *pt, const char *attr)
get_xml_node() で検索したノードから,属性値 attrの値を int型で取り出す.
Definition txml.cpp:2242
char * get_xml_char_attr(tXML *pp, tXML *pt, const char *attr)
get_xml_node() で検索したノードから,属性値 attrの値を char*型で取り出す.free() してはいけない.
Definition txml.cpp:2225
int xml_parse_end_node(char *pp, char **node_name)
XMLの終了ノードを処理する.
Definition txml.cpp:468
Buffer make_xml_attr_bydouble(const char *name, double value)
属性名 name, double型実数の属性値 value を持つ Buffer型変数を作成する.
Definition txml.cpp:1571
void xml_open_node_Buffer(tXML *pp, Buffer *buf, int mode, int indent)
ツリー中のXMLのオープンノードのデータを元の書式に戻して Bufferに格納する.
Definition txml.cpp:958
tXML * find_match_xml_endlist(tXML *pp, tXML *pt)
ツリー pp内で ツリー ptと同じパターンの枝を全て探して,その枝のptの最後のノードに対応するノードの情報をリストにして返す.
Definition txml.cpp:2886
Buffer make_xml_attr_byint(const char *name, int value)
属性名 name, 整数の属性値 value を持つ Buffer型変数を作成する.
Definition txml.cpp:1533
char * xml_get_node_content(tXML *node)
コンテントへのポインタを返す.free() してはいけない.
Definition txml.cpp:1590
double get_xml_double_attr(tXML *pp, tXML *pt, const char *attr)
get_xml_node() で検索したノードから,属性値 attrの値を double型で取り出す.
Definition txml.cpp:2269
tXML * get_xml_content(tXML *pp, tXML *pt)
同じパターンの枝を探し,ptに最初に一致した枝の,ptの最後のノードに対応したノードのコンテントへのポインタを altp に入れて返す.
Definition txml.cpp:2064
tXML * get_xml_attr_node(tXML *pp, const char *key, const char *val)
属性 key=val のノードを探し,最初に見つけたノードを返す.
Definition txml.cpp:2007
tXML * get_xml_content_bystr(tXML *pp, const char *str)
get_xml_content(tXML* pp, tXML* pt) の _bystr バージョン
Definition txml.cpp:2410
tList * get_xml_attr_bystr(tXML *pp, const char *str)
get_xml_attr(tXML* pp, tXML* pt, tList* at) の _bystr バージョン.
Definition txml.cpp:2513
tXML * add_xml_content_node(tXML *xml, const char *value)
XMLツリーのxml の直下にコンテントを挿入する.
Definition txml.cpp:1287
tXML * cmp_sisters_xml(tXML *tp, tXML *tr)
XMLノード tpの姉妹ノードが trの姉妹ノードと同じ XMLノードまたはコンテントであるかを比較する.
Definition txml.cpp:3068
tTree tXML
Definition txml.h:103
Buffer xml_inverse_parse(tXML *pp, int mode)
ppに格納された XMLデータを元の書式に戻して Bufferに格納する.xml_parse() の逆.
Definition txml.cpp:891
int xml_parse_content(char *pp, char **content)
XMLのコンテントを処理する.
Definition txml.cpp:513
tList * get_xml_node_list(tXML *pp, tXML *pt)
XMLツリー pp内で XMLツリー ptと同じパターンの枝を探し,ptに一致した枝の,ptの最後のノードに対応するノードへのポインタをリストに格納して返す.
Definition txml.cpp:2656
tList * get_xml_node_list_bystr(tXML *pp, const char *str)
get_xml_node_list() の _bystr バージョン.
Definition txml.cpp:2760
int set_xml_content(tXML *pp, tXML *pt, const char *val)
同じパターンの枝を探し,ptに最初に一致した枝の,ptの最後ノードに対応したのノードのコンテントを contentで置き換える.
Definition txml.cpp:2119
int _replace_all_node_contents_rcsv(tXML *tp, const char *name, const char *src, const char *dst)
replace_all_node_content() の補助関数
Definition txml.cpp:3242
tXML * add_xml_attr_int(tXML *xml, const char *name, int value)
xml に属性名 name, 整数の属性値 value を持つノードを追加する.
Definition txml.cpp:1437