2015-12-03 17:00:07 +08:00
# ifndef ACL_XML2_INCLUDE_H
# define ACL_XML2_INCLUDE_H
2015-11-27 23:07:43 +08:00
# ifdef __cplusplus
extern " C " {
# endif
2017-06-02 14:47:24 +08:00
# include "../stdlib/acl_array.h"
# include "../stdlib/acl_ring.h"
# include "../stdlib/acl_vstream.h"
# include "../stdlib/acl_htable.h"
# include "../stdlib/acl_vstring.h"
# include "../stdlib/acl_iterator.h"
# include "../stdlib/acl_dbuf_pool.h"
2015-11-27 23:07:43 +08:00
typedef struct ACL_XML2 ACL_XML2 ;
typedef struct ACL_XML2_NODE ACL_XML2_NODE ;
typedef struct ACL_XML2_ATTR ACL_XML2_ATTR ;
struct ACL_XML2_ATTR {
ACL_XML2_NODE * node ; /**< <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ڵ<EFBFBD> */
char * name ; /**< <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
char * value ; /**< <20> <> <EFBFBD> <EFBFBD> ֵ */
2016-02-05 10:10:24 +08:00
ssize_t name_size ; /**< <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
ssize_t value_size ; /**< <20> <> <EFBFBD> <EFBFBD> ֵ<EFBFBD> <D6B5> <EFBFBD> <EFBFBD> */
2015-11-27 23:07:43 +08:00
/* private */
int quote ; /**< <20> <> 0 <20> <> ʾ ' <20> <> " */
int backslash ; /**< ת<> <D7AA> <EFBFBD> ַ<EFBFBD> \ */
int slash ; /**< <20> Ƿ<EFBFBD> <C7B7> <EFBFBD> '/' <20> <> ־λ<D6BE> 趨 */
} ;
struct ACL_XML2_NODE {
char * ltag ; /**< <20> <> <EFBFBD> <EFBFBD> ǩ<EFBFBD> <C7A9> */
char * rtag ; /**< <20> ұ<EFBFBD> ǩ<EFBFBD> <C7A9> */
2016-02-05 10:10:24 +08:00
ssize_t ltag_size ; /**< <20> <> <EFBFBD> <EFBFBD> ǩ<EFBFBD> <C7A9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
ssize_t rtag_size ; /**< <20> ұ<EFBFBD> ǩ<EFBFBD> <C7A9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
2015-11-27 23:07:43 +08:00
const char * id ; /**< ID<49> <44> ʶ<EFBFBD> <CAB6> , ֻ<> <D6BB> <EFBFBD> <EFBFBD> xml->id_table
<EFBFBD> <EFBFBD> <EFBFBD> ڵ Ľ ڵ <EFBFBD> <EFBFBD> <EFBFBD> id <EFBFBD> ŷ ǿ <EFBFBD> */
char * text ; /**< <20> ı <EFBFBD> <C4B1> <EFBFBD> ʾ <EFBFBD> <CABE> <EFBFBD> <EFBFBD> */
2016-02-05 10:10:24 +08:00
ssize_t text_size ; /**< <20> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> ݳ<EFBFBD> <DDB3> <EFBFBD> */
2015-11-27 23:07:43 +08:00
ACL_ARRAY * attr_list ; /**< <20> <> <EFBFBD> <EFBFBD> (ACL_XML2_ATTR)<29> б <EFBFBD> */
ACL_XML2_NODE * parent ; /**< <20> <> <EFBFBD> ڵ<EFBFBD> */
ACL_RING children ; /**< <20> ӽڵ㼯<DAB5> <E3BCAF> */
int depth ; /**< <20> <> ǰ<EFBFBD> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
/* private */
ACL_XML2 * xml ; /**< xml <20> <> <EFBFBD> <EFBFBD> */
ACL_RING node ; /**< <20> <> ǰ<EFBFBD> ڵ<EFBFBD> */
ACL_XML2_ATTR * curr_attr ; /**< <20> <> ǰ<EFBFBD> <C7B0> <EFBFBD> ڽ<EFBFBD> <DABD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
int quote ; /**< <20> <> 0 <20> <> ʾ ' <20> <> " */
int last_ch ; /**< <20> <> <EFBFBD> <EFBFBD> ¼<EFBFBD> <C2BC> <EFBFBD> ڵ<EFBFBD> <DAB5> <EFBFBD> ǰһ <C7B0> <D2BB> <EFBFBD> ֽ<EFBFBD> ֵ */
int nlt ; /**< '<' <20> <> <EFBFBD> <EFBFBD> */
char meta [ 3 ] ; /**< Ԫ<> <D4AA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ<EFBFBD> <CAB1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
unsigned int flag ;
# define ACL_XML2_F_META_QM (1 << 0) /**< '?' flag */
# define ACL_XML2_F_META_CM (1 << 1) /**< '!--' flag */
# define ACL_XML2_F_META_EM (1 << 2) /**< only '!' flag */
# define ACL_XML2_F_SELF_CL (1 << 3) /**< self closed flag */
# define ACL_XML2_F_LEAF (1 << 4) /**< leaf node has no child node */
2015-12-12 23:00:03 +08:00
# define ACL_XML2_F_CDATA (1 << 5) /**< CDATA data */
2015-11-27 23:07:43 +08:00
/**< <20> Ƿ<EFBFBD> <C7B7> <EFBFBD> Ԫ<EFBFBD> <D4AA> <EFBFBD> <EFBFBD> */
# define ACL_XML2_F_META \
( ACL_XML2_F_META_QM | ACL_XML2_F_META_CM | ACL_XML2_F_META_EM )
# define ACL_XML2_IS_COMMENT(x) (((x)->flag & ACL_XML2_F_META_CM))
2015-12-12 23:00:03 +08:00
# define ACL_XML2_IS_CDATA(x) (((x)->flag & ACL_XML2_F_CDATA))
2015-11-27 23:07:43 +08:00
int status ; /**< ״̬<D7B4> <CCAC> <EFBFBD> <EFBFBD> ǰ<EFBFBD> <C7B0> <EFBFBD> <EFBFBD> ״̬ */
2015-12-12 23:00:03 +08:00
# define ACL_XML2_S_NXT 0 /**< <20> <> һ <EFBFBD> <D2BB> <EFBFBD> ڵ<EFBFBD> */
# define ACL_XML2_S_LLT 1 /**< <20> <> <EFBFBD> <EFBFBD> '<' */
# define ACL_XML2_S_LGT 2 /**< <20> ұ<EFBFBD> '>' */
# define ACL_XML2_S_LCH 3 /**< <20> <> <EFBFBD> <EFBFBD> '<' <20> <> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> ֽ<EFBFBD> */
# define ACL_XML2_S_LEM 4 /**< <20> <> <EFBFBD> <EFBFBD> '<' <20> <> <EFBFBD> <EFBFBD> '!' */
# define ACL_XML2_S_LTAG 5 /**< <20> <> <EFBFBD> ߵ ı <DFB5> ǩ<EFBFBD> <C7A9> */
# define ACL_XML2_S_RLT 6 /**< <20> ұߵ <D2B1> '<' */
# define ACL_XML2_S_RGT 7 /**< <20> ұߵ <D2B1> '>' */
# define ACL_XML2_S_RTAG 8 /**< <20> ұߵ ı <DFB5> ǩ<EFBFBD> <C7A9> */
# define ACL_XML2_S_ATTR 9 /**< <20> <> ǩ<EFBFBD> <C7A9> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
# define ACL_XML2_S_AVAL 10 /**< <20> <> ǩ<EFBFBD> <C7A9> <EFBFBD> <EFBFBD> ֵ */
# define ACL_XML2_S_TXT 11 /**< <20> ڵ<EFBFBD> <DAB5> ı <EFBFBD> */
# define ACL_XML2_S_MTAG 12 /**< Ԫ<> <D4AA> <EFBFBD> ݱ<EFBFBD> ǩ */
# define ACL_XML2_S_MTXT 13 /**< Ԫ<> <D4AA> <EFBFBD> <EFBFBD> <EFBFBD> ı <EFBFBD> */
# define ACL_XML2_S_MCMT 14 /**< Ԫ<> <D4AA> <EFBFBD> <EFBFBD> ע<EFBFBD> <D7A2> */
# define ACL_XML2_S_MEND 15 /**< Ԫ<> <D4AA> <EFBFBD> ݽ<EFBFBD> <DDBD> <EFBFBD> */
# define ACL_XML2_S_CDATA 16 /**< CDATA <20> <> <EFBFBD> <EFBFBD> */
2015-11-27 23:07:43 +08:00
/* for acl_iterator, ͨ<> <CDA8> acl_foreach <20> г <EFBFBD> <D0B3> ýڵ<C3BD> <DAB5> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> ӽڵ<D3BD> */
/* ȡ<> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͷ<EFBFBD> <CDB7> <EFBFBD> <EFBFBD> */
ACL_XML2_NODE * ( * iter_head ) ( ACL_ITER * , ACL_XML2_NODE * ) ;
/* ȡ<> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
ACL_XML2_NODE * ( * iter_next ) ( ACL_ITER * , ACL_XML2_NODE * ) ;
/* ȡ<> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β<EFBFBD> <CEB2> <EFBFBD> <EFBFBD> */
ACL_XML2_NODE * ( * iter_tail ) ( ACL_ITER * , ACL_XML2_NODE * ) ;
/* ȡ<> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
ACL_XML2_NODE * ( * iter_prev ) ( ACL_ITER * , ACL_XML2_NODE * ) ;
} ;
struct ACL_XML2 {
/* public */
int depth ; /**< <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
int node_cnt ; /**< <20> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> , <20> <> <EFBFBD> <EFBFBD> root <20> ڵ<EFBFBD> */
int root_cnt ; /**< <20> <> <EFBFBD> ڵ<EFBFBD> <DAB5> <EFBFBD> <EFBFBD> <EFBFBD> */
2016-02-25 19:57:02 +08:00
int attr_cnt ; /**< <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
2015-11-27 23:07:43 +08:00
ACL_XML2_NODE * root ; /**< XML <20> <> <EFBFBD> ڵ<EFBFBD> */
/* private */
2016-02-05 10:10:24 +08:00
ACL_FILE_HANDLE fd ; /** <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ɱ<EFBFBD> <C9B1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <F2BFAAB5> ļ<EFBFBD> <C4BC> <EFBFBD> <EFBFBD> <EFBFBD> */
ACL_VSTRING * vbuf ; /**< <20> <> <EFBFBD> <EFBFBD> <EFBFBD> ڴ<EFBFBD> ӳ<EFBFBD> <D3B3> <EFBFBD> ļ<EFBFBD> <C4BC> Ļ<EFBFBD> <C4BB> <EFBFBD> <EFBFBD> <EFBFBD> */
ACL_VSTRING * vbuf_inner ; /**< <20> ڲ<EFBFBD> <DAB2> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ļ<EFBFBD> <C4BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
char dummy [ 1 ] ;
2015-12-03 17:00:07 +08:00
2015-11-27 23:07:43 +08:00
ACL_HTABLE * id_table ; /**< id <20> <> ʶ<EFBFBD> <CAB6> <EFBFBD> <EFBFBD> ϣ<EFBFBD> <CFA3> */
ACL_XML2_NODE * curr_node ; /**< <20> <> ǰ<EFBFBD> <C7B0> <EFBFBD> ڴ<EFBFBD> <DAB4> <EFBFBD> <EFBFBD> <EFBFBD> XML <20> ڵ<EFBFBD> */
ACL_DBUF_POOL * dbuf ; /**< <20> ڴ<EFBFBD> <DAB4> ض<EFBFBD> <D8B6> <EFBFBD> */
ACL_DBUF_POOL * dbuf_inner ; /**< <20> ڲ<EFBFBD> <DAB2> ֲ<EFBFBD> <D6B2> <EFBFBD> <EFBFBD> ڴ<EFBFBD> <DAB4> ض<EFBFBD> <D8B6> <EFBFBD> */
size_t dbuf_keep ; /**< <20> ڴ<EFBFBD> <DAB4> <EFBFBD> <EFBFBD> б <EFBFBD> <D0B1> <EFBFBD> <EFBFBD> ij<EFBFBD> <C4B3> <EFBFBD> */
unsigned flag ; /**< <20> <> ־λ: ACL_XML2_FLAG_xxx */
/**< <20> Ƿ<EFBFBD> <C7B7> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> xml <20> ĵ<EFBFBD> <C4B5> <EFBFBD> <EFBFBD> ж<EFBFBD> <D0B6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڵ㣬<DAB5> ڲ<EFBFBD> ȱʡΪ<CAA1> <CEAA> <EFBFBD> <EFBFBD> */
# define ACL_XML2_FLAG_MULTI_ROOT (1 << 0)
/**< <20> Ƿ<EFBFBD> <C7B7> <EFBFBD> <EFBFBD> ݵ<EFBFBD> <DDB5> ڵ<EFBFBD> <DAB5> <EFBFBD> û<EFBFBD> <C3BB> '/' <20> <> <EFBFBD> <EFBFBD> */
# define ACL_XML2_FLAG_IGNORE_SLASH (1 << 1)
2016-02-25 19:57:02 +08:00
/**< <20> <> <EFBFBD> <EFBFBD> xml <20> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> Ƿ<EFBFBD> <C7B7> <EFBFBD> Ҫ<EFBFBD> <D2AA> <EFBFBD> <EFBFBD> <EFBFBD> ݽ<EFBFBD> <DDBD> <EFBFBD> xml <20> <> <EFBFBD> <EFBFBD> */
2015-11-27 23:07:43 +08:00
# define ACL_XML2_FLAG_XML_DECODE (1 << 2)
2016-02-25 19:57:02 +08:00
/**< <20> <> <EFBFBD> <EFBFBD> xml <20> <> <EFBFBD> <EFBFBD> ʱ<EFBFBD> Ƿ<EFBFBD> <C7B7> <EFBFBD> Ҫ<EFBFBD> <D2AA> <EFBFBD> <EFBFBD> <EFBFBD> ݽ<EFBFBD> <DDBD> <EFBFBD> xml <20> <> <EFBFBD> <EFBFBD> */
# define ACL_XML2_FLAG_XML_ENCODE (1 << 3)
2015-11-27 23:07:43 +08:00
/* for acl_iterator, ͨ<> <CDA8> acl_foreach <20> <> <EFBFBD> <EFBFBD> <EFBFBD> г <EFBFBD> <D0B3> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽڵ<D3BD> */
/* ȡ<> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͷ<EFBFBD> <CDB7> <EFBFBD> <EFBFBD> */
2016-02-25 19:57:02 +08:00
ACL_XML2_NODE * ( * iter_head ) ( ACL_ITER * , const ACL_XML2 * ) ;
2015-11-27 23:07:43 +08:00
/* ȡ<> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
2016-02-25 19:57:02 +08:00
ACL_XML2_NODE * ( * iter_next ) ( ACL_ITER * , const ACL_XML2 * ) ;
2015-11-27 23:07:43 +08:00
/* ȡ<> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> β<EFBFBD> <CEB2> <EFBFBD> <EFBFBD> */
2016-02-25 19:57:02 +08:00
ACL_XML2_NODE * ( * iter_tail ) ( ACL_ITER * , const ACL_XML2 * ) ;
2015-11-27 23:07:43 +08:00
/* ȡ<> <C8A1> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <D2BB> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> */
2016-02-25 19:57:02 +08:00
ACL_XML2_NODE * ( * iter_prev ) ( ACL_ITER * , const ACL_XML2 * ) ;
2015-11-27 23:07:43 +08:00
} ;
/****************************************************************************/
/* <20> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӿڣ<D3BF> <DAA3> û<EFBFBD> <C3BB> <EFBFBD> <EFBFBD> Է<EFBFBD> <D4B7> <EFBFBD> ʹ <EFBFBD> øýӿڼ<D3BF> */
/****************************************************************************/
2016-02-25 19:57:02 +08:00
/*----------------------------- in acl_xml2.c ----------------------------*/
2015-11-27 23:07:43 +08:00
/**
* <EFBFBD> ж <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ƿ <EFBFBD> <EFBFBD> պ ϵ <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> Ƿ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ƿ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* xml <EFBFBD> ڵ <EFBFBD> Ԫ <EFBFBD> <EFBFBD> Ϊ <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> Ҳ <EFBFBD> <EFBFBD> Ϊ <EFBFBD> <EFBFBD> <EFBFBD> DZ պ ϵ <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ return { int } 0 : <EFBFBD> <EFBFBD> ; 1 : <EFBFBD> <EFBFBD>
*/
ACL_API int acl_xml2_is_closure ( ACL_XML2 * xml ) ;
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ǩ <EFBFBD> <EFBFBD> <EFBFBD> ж <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ѿ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> ñ <EFBFBD> ǩ <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> root һ <EFBFBD> <EFBFBD> <EFBFBD> ӽ ڵ <EFBFBD>
* <EFBFBD> е <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> ı <EFBFBD> ǩ <EFBFBD> <EFBFBD> ͬ ʱ , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , Ϊ <EFBFBD> <EFBFBD> ֤ <EFBFBD> ж ϵ <EFBFBD> <EFBFBD> <EFBFBD> ȷ <EFBFBD> <EFBFBD> ,
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Դ Ӧ <EFBFBD> <EFBFBD> ֤ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ĸ <EFBFBD> <EFBFBD> ڵ <EFBFBD> ֻ <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> xml - > root <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> <EFBFBD> ӽ ڵ <EFBFBD> ֻ <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param tag { const char * } <EFBFBD> û <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ǩ <EFBFBD> <EFBFBD> , <EFBFBD> ڲ <EFBFBD> <EFBFBD> <EFBFBD> ƥ <EFBFBD> <EFBFBD> ʱ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ִ <EFBFBD> С д
* @ return { int } 0 : <EFBFBD> <EFBFBD> ; 1 : <EFBFBD> <EFBFBD>
*/
ACL_API int acl_xml2_is_complete ( ACL_XML2 * xml , const char * tag ) ;
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2016-02-05 10:10:24 +08:00
* @ param vbuf { ACL_VSTRING * } <EFBFBD> ڴ <EFBFBD> ӳ <EFBFBD> 仺 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2015-11-27 23:07:43 +08:00
* @ return { ACL_XML2 * } <EFBFBD> ´ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
2016-02-05 10:10:24 +08:00
ACL_API ACL_XML2 * acl_xml2_alloc ( ACL_VSTRING * vbuf ) ;
2015-11-27 23:07:43 +08:00
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> е <EFBFBD> <EFBFBD> ڲ <EFBFBD> <EFBFBD> ڴ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 䶼 <EFBFBD> ڸ <EFBFBD> <EFBFBD> ڴ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ͻ <EFBFBD> <EFBFBD> з <EFBFBD> <EFBFBD> <EFBFBD>
2016-02-05 10:10:24 +08:00
* @ param vbuf { ACL_VSTRING * } <EFBFBD> ڴ <EFBFBD> ӳ <EFBFBD> 仺 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2015-12-03 17:00:07 +08:00
* @ param dbuf { ACL_DBUF_POOL * } <EFBFBD> ڴ <EFBFBD> <EFBFBD> ض <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Է <EFBFBD> NULL ʱ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڵ <EFBFBD> <EFBFBD> ڴ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ͻ <EFBFBD> <EFBFBD> з <EFBFBD> <EFBFBD> 䣬 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڲ <EFBFBD> <EFBFBD> Զ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> ڴ <EFBFBD> <EFBFBD> <EFBFBD>
2015-11-27 23:07:43 +08:00
* @ return { ACL_XML2 * } <EFBFBD> ´ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
2016-02-05 10:10:24 +08:00
ACL_API ACL_XML2 * acl_xml2_dbuf_alloc ( ACL_VSTRING * vbuf , ACL_DBUF_POOL * dbuf ) ;
2015-11-27 23:07:43 +08:00
2015-12-03 17:00:07 +08:00
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> Ĵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڴ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڴ <EFBFBD> ӳ <EFBFBD> <EFBFBD> <EFBFBD> ļ <EFBFBD> <EFBFBD> <EFBFBD>
* @ param filepath { const char * } <EFBFBD> ڴ <EFBFBD> ӳ <EFBFBD> <EFBFBD> <EFBFBD> ļ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ļ <EFBFBD> <EFBFBD> <EFBFBD>
2016-02-05 10:10:24 +08:00
* @ param max_len { size_t } <EFBFBD> <EFBFBD> ӳ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ļ <EFBFBD> <EFBFBD> <EFBFBD> С
* @ param init_len { size_t } ӳ <EFBFBD> <EFBFBD> <EFBFBD> ڴ <EFBFBD> <EFBFBD> <EFBFBD> ʼ <EFBFBD> <EFBFBD> ʱ <EFBFBD> Ĵ <EFBFBD> С
2015-12-03 17:00:07 +08:00
* @ param dbuf { ACL_DBUF_POOL * } <EFBFBD> ڴ <EFBFBD> <EFBFBD> ض <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Է <EFBFBD> NULL ʱ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڵ <EFBFBD> <EFBFBD> ڴ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ͻ <EFBFBD> <EFBFBD> з <EFBFBD> <EFBFBD> 䣬 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڲ <EFBFBD> <EFBFBD> Զ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> ڴ <EFBFBD> <EFBFBD> <EFBFBD>
* @ return { ACL_XML2 * } <EFBFBD> ´ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
2016-02-05 10:10:24 +08:00
ACL_API ACL_XML2 * acl_xml2_mmap_file ( const char * filepath , size_t max_len ,
size_t init_len , ACL_DBUF_POOL * dbuf ) ;
2015-12-03 17:00:07 +08:00
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> Ĵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڴ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڴ <EFBFBD> ӳ <EFBFBD> <EFBFBD> <EFBFBD> ļ <EFBFBD> <EFBFBD> <EFBFBD>
2016-02-05 10:10:24 +08:00
* @ param fd { ACL_FILE_HANDLE } <EFBFBD> ڴ <EFBFBD> ӳ <EFBFBD> <EFBFBD> <EFBFBD> ļ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ļ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ɹ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> þ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͷ ź <EFBFBD> <EFBFBD> Ź ر <EFBFBD>
* @ param max_len { size_t } <EFBFBD> <EFBFBD> ӳ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ļ <EFBFBD> <EFBFBD> <EFBFBD> С
* @ param init_len { size_t } ӳ <EFBFBD> <EFBFBD> <EFBFBD> ڴ <EFBFBD> <EFBFBD> <EFBFBD> ʼ <EFBFBD> <EFBFBD> ʱ <EFBFBD> Ĵ <EFBFBD> С
2015-12-03 17:00:07 +08:00
* @ param dbuf { ACL_DBUF_POOL * } <EFBFBD> ڴ <EFBFBD> <EFBFBD> ض <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Է <EFBFBD> NULL ʱ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڵ <EFBFBD> <EFBFBD> ڴ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ͻ <EFBFBD> <EFBFBD> з <EFBFBD> <EFBFBD> 䣬 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڲ <EFBFBD> <EFBFBD> Զ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> ڴ <EFBFBD> <EFBFBD> <EFBFBD>
* @ return { ACL_XML2 * } <EFBFBD> ´ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
2016-02-05 10:10:24 +08:00
ACL_API ACL_XML2 * acl_xml2_mmap_fd ( ACL_FILE_HANDLE fd , size_t max_len ,
size_t init_len , ACL_DBUF_POOL * dbuf ) ;
2016-01-17 13:35:12 +08:00
2016-02-25 19:57:02 +08:00
/**
* <EFBFBD> <EFBFBD> <EFBFBD> õ <EFBFBD> ǰ xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڲ <EFBFBD> <EFBFBD> Ѿ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڴ <EFBFBD> <EFBFBD> ռ <EFBFBD> <EFBFBD> <EFBFBD> С
* @ param xml { ACL_XML2 * }
* @ return { size_t } <EFBFBD> <EFBFBD> ǰ xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڲ <EFBFBD> <EFBFBD> ѷ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڴ <EFBFBD> <EFBFBD> <EFBFBD> С
*/
ACL_API size_t acl_xml2_space ( ACL_XML2 * xml ) ;
/**
* <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڲ <EFBFBD> <EFBFBD> <EFBFBD> ¼ <EFBFBD> ڴ <EFBFBD> <EFBFBD> <EFBFBD> С <EFBFBD> ı <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 0
* @ param xml { ACL_XML2 * }
*/
ACL_API void acl_xml2_space_clear ( ACL_XML2 * xml ) ;
2015-11-27 23:07:43 +08:00
/**
* <EFBFBD> <EFBFBD> ij һ <EFBFBD> <EFBFBD> ACL_XML2_NODE <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> Ϊ һ <EFBFBD> <EFBFBD> XML <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ĸ <EFBFBD> <EFBFBD> ڵ 㣬 <EFBFBD> Ӷ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Է <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ر <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӽ ڵ <EFBFBD> ( <EFBFBD> ڱ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> е <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> н ڵ 㲻 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ) <EFBFBD> <EFBFBD> <EFBFBD> ñ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʽ <EFBFBD> б <EFBFBD> <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ij һ <EFBFBD> <EFBFBD> ACL_XML2_NODE <EFBFBD> ڵ <EFBFBD> ʱ <EFBFBD> <EFBFBD> <EFBFBD> ܱ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> <EFBFBD> ӽ ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param node { ACL_XML2_NODE * } AXL_XML_NODE <EFBFBD> ڵ <EFBFBD>
*/
ACL_API void acl_xml2_foreach_init ( ACL_XML2 * xml , ACL_XML2_NODE * node ) ;
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> xml <EFBFBD> ĵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ƿ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ж <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ 㣬 <EFBFBD> ڲ <EFBFBD> ȱ ʡ ֧ <EFBFBD> ֶ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڵ <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param on { int } <EFBFBD> <EFBFBD> 0 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ 0 <EFBFBD> <EFBFBD> ʾ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֹ <EFBFBD> ж <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> ʱ <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> ڽ <EFBFBD> <EFBFBD> <EFBFBD> ʱ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ <EFBFBD> 㷵 <EFBFBD> <EFBFBD> ʣ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API void acl_xml2_multi_root ( ACL_XML2 * xml , int on ) ;
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> XML <EFBFBD> <EFBFBD> <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> Ƿ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> û <EFBFBD> <EFBFBD> / , <EFBFBD> <EFBFBD> :
* < test id = 111 > , < test id = 111 / > , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> û <EFBFBD> <EFBFBD> / <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> д <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> Ǻ Ϸ <EFBFBD> <EFBFBD> ģ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֻ <EFBFBD> е ڶ <EFBFBD> <EFBFBD> <EFBFBD> д <EFBFBD> <EFBFBD> <EFBFBD> Ǻ Ϸ <EFBFBD> <EFBFBD> ģ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ּ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԣ <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʧ
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param ignore { int } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 0 <EFBFBD> <EFBFBD> ʾ <EFBFBD> <EFBFBD> <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> /
*/
ACL_API void acl_xml2_slash ( ACL_XML2 * xml , int ignore ) ;
/**
2016-02-25 19:57:02 +08:00
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ <EFBFBD> Ƿ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ <EFBFBD> <EFBFBD> <EFBFBD> ı <EFBFBD> ֵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> 룬 <EFBFBD> ڲ <EFBFBD> ȱ ʡ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2015-11-27 23:07:43 +08:00
* @ param xml { ACL_XML2 * }
* @ param on { int } <EFBFBD> <EFBFBD> 0 <EFBFBD> <EFBFBD> ʾ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API void acl_xml2_decode_enable ( ACL_XML2 * xml , int on ) ;
2016-02-25 19:57:02 +08:00
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ <EFBFBD> Ƿ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ <EFBFBD> <EFBFBD> <EFBFBD> ı <EFBFBD> ֵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> 룬 <EFBFBD> ڲ <EFBFBD> ȱ ʡ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API void acl_xml2_encode_enable ( ACL_XML2 * xml , int on ) ;
2015-11-27 23:07:43 +08:00
/**
* <EFBFBD> ͷ <EFBFBD> һ <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , ͬ ʱ <EFBFBD> ͷ Ÿ ö <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ɵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ return { int } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͷ ŵ <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API int acl_xml2_free ( ACL_XML2 * xml ) ;
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> XML <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API void acl_xml2_reset ( ACL_XML2 * xml ) ;
/*------------------------- in acl_xml2_parse.c ----------------------------*/
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Զ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param data { const char * } <EFBFBD> <EFBFBD> ' \0 ' <EFBFBD> <EFBFBD> β <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ַ <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ;
* Ҳ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Dz <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ѭ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ô ˺ <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݳ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ return { const char * } <EFBFBD> <EFBFBD> ͨ <EFBFBD> <EFBFBD> acl_xml2_multi_root <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> xml <EFBFBD> ĵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> ʱ <EFBFBD> <EFBFBD> <EFBFBD> ú <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ص ĵ <EFBFBD> ַ <EFBFBD> <EFBFBD> <EFBFBD> ֽ <EFBFBD> Ϊ ' \0 ' ; <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʣ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݵ <EFBFBD> ַ
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ǿ <EFBFBD> <EFBFBD> ַ <EFBFBD> <EFBFBD> <EFBFBD>
* ע <EFBFBD> <EFBFBD> Ҳ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͨ <EFBFBD> <EFBFBD> acl_xml2_is_complete <EFBFBD> ж <EFBFBD> <EFBFBD> Ƿ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API const char * acl_xml2_update ( ACL_XML2 * xml , const char * data ) ;
# define acl_xml2_parse acl_xml2_update
/*------------------------- in acl_xml2_util.c -----------------------------*/
/**
* <EFBFBD> <EFBFBD> ʼ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> input , br , hr <EFBFBD> ȵ <EFBFBD> <EFBFBD> Ա պ ϱ <EFBFBD> ǩ , <EFBFBD> γ <EFBFBD> <EFBFBD> Ա պ ϱ <EFBFBD> ǩ <EFBFBD> <EFBFBD> , <EFBFBD> Ա <EFBFBD> <EFBFBD> <EFBFBD>
* acl_xml2_tag_selfclosed <EFBFBD> <EFBFBD> ѯ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ǩ <EFBFBD> Ƿ <EFBFBD> <EFBFBD> DZ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ա պ ϱ <EFBFBD> ǩ ,
* <EFBFBD> ú <EFBFBD> <EFBFBD> <EFBFBD> ֻ <EFBFBD> ܱ <EFBFBD> <EFBFBD> <EFBFBD> ʼ <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> , Ҳ <EFBFBD> <EFBFBD> <EFBFBD> Բ <EFBFBD> <EFBFBD> <EFBFBD> ʼ <EFBFBD> <EFBFBD>
*/
ACL_API void acl_xml2_tag_init ( void ) ;
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> û <EFBFBD> <EFBFBD> Լ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ Щ <EFBFBD> <EFBFBD> <EFBFBD> Ա պ ϵ ı <EFBFBD> ǩ
* @ param tag { const char * } <EFBFBD> <EFBFBD> ǩ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ע <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ǩ <EFBFBD> <EFBFBD> <EFBFBD> Ȳ <EFBFBD> <EFBFBD> ô <EFBFBD> <EFBFBD> <EFBFBD> 254 <EFBFBD> <EFBFBD> <EFBFBD> ֽ <EFBFBD>
*/
ACL_API void acl_xml2_tag_add ( const char * tag ) ;
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> acl_xml2_tag_init <EFBFBD> <EFBFBD> ʼ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ա պ ϱ <EFBFBD> ǩ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> Ե <EFBFBD> <EFBFBD> ô ˺ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ж <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> ǩ <EFBFBD> Ƿ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ա պ ϱ <EFBFBD> ǩ , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> δ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> acl_xml2_tag_init , <EFBFBD> <EFBFBD> <EFBFBD> ú <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Զ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 0
* @ parma tag { const char * } <EFBFBD> <EFBFBD> ǩ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ return { int } 0 : <EFBFBD> <EFBFBD> ʾ <EFBFBD> <EFBFBD> , 1 : <EFBFBD> <EFBFBD> ʾ <EFBFBD> <EFBFBD>
*/
ACL_API int acl_xml2_tag_selfclosed ( const char * tag ) ;
/**
* <EFBFBD> ж ϱ <EFBFBD> ǩ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> Ƿ <EFBFBD> <EFBFBD> <EFBFBD> Ҷ <EFBFBD> ڵ <EFBFBD> , Ҷ <EFBFBD> ڵ <EFBFBD> û <EFBFBD> <EFBFBD> <EFBFBD> ӽ ڵ <EFBFBD>
* @ param tag { const char * } <EFBFBD> <EFBFBD> ǩ <EFBFBD> <EFBFBD>
* @ return { int } 0 : <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҷ <EFBFBD> ڵ <EFBFBD> ; 1 : <EFBFBD> <EFBFBD> Ҷ <EFBFBD> ڵ <EFBFBD>
*/
ACL_API int acl_xml2_tag_leaf ( const char * tag ) ;
/**
* <EFBFBD> ͷ <EFBFBD> <EFBFBD> <EFBFBD> acl_xml2_getElementsByTagName , acl_xml2_getElementsByName ,
* acl_xml2_getElementsByAttr <EFBFBD> Ⱥ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ص Ķ <EFBFBD> ̬ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> Ϊ <EFBFBD> ö <EFBFBD> ̬ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> е <EFBFBD>
* Ԫ <EFBFBD> ض <EFBFBD> <EFBFBD> <EFBFBD> ACL_XML2 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ԫ <EFBFBD> ص <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͷ ŵ <EFBFBD> <EFBFBD> ö <EFBFBD> ̬ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , ֻ Ҫ ACL_XML2
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͷ <EFBFBD> , <EFBFBD> <EFBFBD> ԭ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڸ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> е <EFBFBD> Ԫ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ȼ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʹ <EFBFBD> <EFBFBD> .
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͷ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> Ԫ <EFBFBD> <EFBFBD>
* @ param a { ACL_ARRAY * } <EFBFBD> <EFBFBD> ̬ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API void acl_xml2_free_array ( ACL_ARRAY * a ) ;
/**
* <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> л <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ǩ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͬ <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> <EFBFBD> ڵ <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param tag { const char * } <EFBFBD> <EFBFBD> ǩ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ return { ACL_XML2_NODE * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> NULL <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> ʾ û <EFBFBD> з <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD>
*/
ACL_API ACL_XML2_NODE * acl_xml2_getFirstElementByTagName (
ACL_XML2 * xml , const char * tag ) ;
/**
* <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> л <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> е <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ǩ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͬ <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> ļ <EFBFBD> <EFBFBD> <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param tag { const char * } <EFBFBD> <EFBFBD> ǩ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ return { ACL_ARRAY * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ 㼯 <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ̬ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> NULL <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> ʾ û <EFBFBD> з <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> , <EFBFBD> ǿ <EFBFBD> ֵ <EFBFBD> <EFBFBD> Ҫ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> acl_xml2_free_array <EFBFBD> ͷ <EFBFBD>
*/
ACL_API ACL_ARRAY * acl_xml2_getElementsByTagName (
ACL_XML2 * xml , const char * tag ) ;
/**
* <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> л <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> е <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ༶ <EFBFBD> <EFBFBD> ǩ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͬ <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> ļ <EFBFBD> <EFBFBD> <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param tags { const char * } <EFBFBD> ༶ <EFBFBD> <EFBFBD> ǩ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ' / ' <EFBFBD> ָ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ǩ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> ݣ <EFBFBD>
* < root > < first > < second > < third name = " test1 " > text1 < / third > < / second > < / first >
* < root > < first > < second > < third name = " test2 " > text2 < / third > < / second > < / first >
* < root > < first > < second > < third name = " test3 " > text3 < / third > < / second > < / first >
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͨ <EFBFBD> <EFBFBD> <EFBFBD> ༶ <EFBFBD> <EFBFBD> ǩ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> root / first / second / third һ <EFBFBD> <EFBFBD> <EFBFBD> Բ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> з <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ľ ڵ <EFBFBD>
* @ return { ACL_ARRAY * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ 㼯 <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ̬ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> NULL <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> ʾ û <EFBFBD> з <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> , <EFBFBD> ǿ <EFBFBD> ֵ <EFBFBD> <EFBFBD> Ҫ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> acl_xml2_free_array <EFBFBD> ͷ <EFBFBD>
*/
ACL_API ACL_ARRAY * acl_xml2_getElementsByTags ( ACL_XML2 * xml , const char * tags ) ;
/**
* <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> л <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> е <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> name <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ <EFBFBD> <EFBFBD> ͬ <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> Ԫ <EFBFBD> ؼ <EFBFBD> <EFBFBD> <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param value { const char * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ name <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ
* @ return { ACL_ARRAY * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ 㼯 <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ̬ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> NULL <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> ʾ û <EFBFBD> з <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> , <EFBFBD> ǿ <EFBFBD> ֵ <EFBFBD> <EFBFBD> Ҫ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> acl_xml2_free_array <EFBFBD> ͷ <EFBFBD>
*/
ACL_API ACL_ARRAY * acl_xml2_getElementsByName ( ACL_XML2 * xml , const char * value ) ;
/**
* <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> л <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> и <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> Ԫ <EFBFBD> ؼ <EFBFBD> <EFBFBD> <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param name { const char * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param value { const char * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ
* @ return { ACL_ARRAY * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ 㼯 <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ̬ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> NULL <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> ʾ û <EFBFBD> з <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> , <EFBFBD> ǿ <EFBFBD> ֵ <EFBFBD> <EFBFBD> Ҫ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> acl_xml2_free_array <EFBFBD> ͷ <EFBFBD>
*/
ACL_API ACL_ARRAY * acl_xml2_getElementsByAttr ( ACL_XML2 * xml ,
const char * name , const char * value ) ;
/**
* <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> л <EFBFBD> <EFBFBD> <EFBFBD> ָ <EFBFBD> <EFBFBD> id ֵ <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> Ԫ <EFBFBD> ص <EFBFBD> ij <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Զ <EFBFBD> <EFBFBD> <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param id { const char * } id ֵ
* @ return { ACL_XML2_ATTR * } ij xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> ij <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Զ <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> NULL <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʾ
* û <EFBFBD> з <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ <EFBFBD> ͷ <EFBFBD>
*/
ACL_API ACL_XML2_ATTR * acl_xml2_getAttrById ( ACL_XML2 * xml , const char * id ) ;
/**
* <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> л <EFBFBD> <EFBFBD> <EFBFBD> ָ <EFBFBD> <EFBFBD> id ֵ <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> Ԫ <EFBFBD> ص <EFBFBD> ij <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param id { const char * } id ֵ
* @ return { const char * } ij xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> ij <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> NULL <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʾ û <EFBFBD> з <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API const char * acl_xml2_getAttrValueById ( ACL_XML2 * xml , const char * id ) ;
/**
* <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> л <EFBFBD> <EFBFBD> <EFBFBD> ָ <EFBFBD> <EFBFBD> id ֵ <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> Ԫ <EFBFBD> <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param id { const char * } id ֵ
* @ return { ACL_XML2_NODE * } xml <EFBFBD> ڵ <EFBFBD> Ԫ <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> NULL <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʾ û <EFBFBD> з <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ <EFBFBD> ͷ <EFBFBD>
*/
ACL_API ACL_XML2_NODE * acl_xml2_getElementById ( ACL_XML2 * xml , const char * id ) ;
/**
* <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ȡ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ? ! <EFBFBD> ȿ <EFBFBD> ͷ <EFBFBD> Ľ ڵ <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param tag { const char * } <EFBFBD> <EFBFBD> ǩ <EFBFBD> <EFBFBD>
* @ return { ACL_XML2_NODE * } xml <EFBFBD> ڵ <EFBFBD> Ԫ <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> NULL <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʾ û <EFBFBD> з <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ <EFBFBD> ͷ <EFBFBD>
*/
ACL_API ACL_XML2_NODE * acl_xml2_getElementMeta ( ACL_XML2 * xml , const char * tag ) ;
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> ַ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʽ
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ return { const char * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ַ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʽ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> NULL ʱ <EFBFBD> <EFBFBD> ʾ û <EFBFBD> и <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API const char * acl_xml2_getEncoding ( ACL_XML2 * xml ) ;
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> ݵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͣ <EFBFBD> <EFBFBD> 磺 text / xsl
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ return { const char * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> NULL <EFBFBD> <EFBFBD> ʾ û <EFBFBD> и <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API const char * acl_xml2_getType ( ACL_XML2 * xml ) ;
/**
* <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> л <EFBFBD> <EFBFBD> <EFBFBD> ָ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Զ <EFBFBD> <EFBFBD> <EFBFBD>
* @ param node { ACL_XML2_NODE * } xml <EFBFBD> ڵ <EFBFBD>
* @ param name { const char * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ return { ACL_XML2_ATTR * } <EFBFBD> <EFBFBD> <EFBFBD> Զ <EFBFBD> <EFBFBD> <EFBFBD> , Ϊ <EFBFBD> ձ <EFBFBD> ʾ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ <EFBFBD> ͷ <EFBFBD>
*/
ACL_API ACL_XML2_ATTR * acl_xml2_getElementAttr ( ACL_XML2_NODE * node , const char * name ) ;
/**
* <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> л <EFBFBD> <EFBFBD> <EFBFBD> ָ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ
* @ param node { ACL_XML2_NODE * } xml <EFBFBD> ڵ <EFBFBD>
* @ param name { const char * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ return { const char * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ , Ϊ <EFBFBD> ձ <EFBFBD> ʾ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API const char * acl_xml2_getElementAttrVal ( ACL_XML2_NODE * node , const char * name ) ;
/**
* <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> ɾ <EFBFBD> <EFBFBD> ij <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Զ <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ id <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> ͬ ʱ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml - > id_table <EFBFBD> <EFBFBD> ɾ <EFBFBD> <EFBFBD>
* @ param node { ACL_XML2_NODE * } xml <EFBFBD> ڵ <EFBFBD>
* @ param name { const char * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ return { int } 0 <EFBFBD> <EFBFBD> ʾ ɾ <EFBFBD> <EFBFBD> <EFBFBD> ɹ <EFBFBD> , - 1 : <EFBFBD> <EFBFBD> ʾ ɾ <EFBFBD> <EFBFBD> ʧ <EFBFBD> <EFBFBD> ( <EFBFBD> п <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ǹ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Բ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> )
*/
ACL_API int acl_xml2_removeElementAttr ( ACL_XML2_NODE * node , const char * name ) ;
/**
* <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ѵ <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> µ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ <EFBFBD> 滻 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> µ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Զ <EFBFBD> <EFBFBD> <EFBFBD>
* @ param node { ACL_XML2_NODE * } xml <EFBFBD> ڵ <EFBFBD>
* @ param name { const char * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param value { const char * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ
* @ return { ACL_XML2_ATTR * } <EFBFBD> <EFBFBD> <EFBFBD> ظ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Զ <EFBFBD> <EFBFBD> <EFBFBD> ( <EFBFBD> п <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԭ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , Ҳ <EFBFBD> п <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> µ <EFBFBD> ) ,
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͷ <EFBFBD>
*/
ACL_API ACL_XML2_ATTR * acl_xml2_addElementAttr ( ACL_XML2_NODE * node ,
const char * name , const char * value ) ;
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ǩ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڵ <EFBFBD> <EFBFBD> ı <EFBFBD> <EFBFBD> <EFBFBD> Ϊ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ 㣬 <EFBFBD> ú <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ <EFBFBD> <EFBFBD> <EFBFBD> ڹ <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> ö <EFBFBD> <EFBFBD> <EFBFBD> Ӧ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> acl_xml2_alloc <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param tagname { const char * } <EFBFBD> <EFBFBD> ǩ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ǿ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ַ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ȴ <EFBFBD> <EFBFBD> <EFBFBD> 0
* @ param text { const char * } <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ı <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݣ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ <EFBFBD> <EFBFBD>
* @ return { ACL_XML2_NODE * } <EFBFBD> ´ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ 㣬 <EFBFBD> ÷ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Զ <EFBFBD> <EFBFBD> <EFBFBD> ط ǿ գ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ƿ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ᵼ <EFBFBD> <EFBFBD> <EFBFBD> ڲ <EFBFBD> <EFBFBD> Զ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API ACL_XML2_NODE * acl_xml2_create_node ( ACL_XML2 * xml ,
const char * tagname , const char * text ) ;
2016-02-25 19:57:02 +08:00
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ 㣬 ʹ <EFBFBD> <EFBFBD> <EFBFBD> ļ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ı <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͬ ʱ <EFBFBD> <EFBFBD> <EFBFBD> Զ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> XML <EFBFBD> <EFBFBD> <EFBFBD> 봦 <EFBFBD> <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param tag { const char * } <EFBFBD> <EFBFBD> ǩ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> NULL <EFBFBD> ַ <EFBFBD> <EFBFBD> <EFBFBD>
* @ param in { ACL_VSTREAM * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> NULL ʱ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݽ <EFBFBD> <EFBFBD> <EFBFBD> Ϊ xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ı <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param off { size_t } <EFBFBD> <EFBFBD> in Ϊ <EFBFBD> ļ <EFBFBD> <EFBFBD> <EFBFBD> ʱ ָ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ļ <EFBFBD> <EFBFBD> е <EFBFBD> <EFBFBD> <EFBFBD> ʼ λ <EFBFBD> <EFBFBD>
* @ param len { size_t } ָ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> п <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݳ <EFBFBD> <EFBFBD> ȣ <EFBFBD> <EFBFBD> <EFBFBD> Ϊ 0 ʱ <EFBFBD> <EFBFBD> һ ֱ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ return { ACL_XML2_NODE * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ´ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ 㣬 <EFBFBD> <EFBFBD> Զ <EFBFBD> <EFBFBD> <EFBFBD> ط <EFBFBD> NULL <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ƿ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ڲ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API ACL_XML2_NODE * acl_xml2_create_node_with_text_stream ( ACL_XML2 * xml ,
const char * tag , ACL_VSTREAM * in , size_t off , size_t len ) ;
2015-11-27 23:07:43 +08:00
/**
* <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԣ <EFBFBD> <EFBFBD> ú <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ <EFBFBD> <EFBFBD> <EFBFBD> ڹ <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ
* @ param node { ACL_XML2_NODE * } <EFBFBD> <EFBFBD> acl_xml2_create_node <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ľ ڵ <EFBFBD>
* @ param name { const char * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ <EFBFBD> ǿ <EFBFBD> <EFBFBD> ַ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ַ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ȴ <EFBFBD> <EFBFBD> <EFBFBD> 0
* @ param value { const char * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ <EFBFBD> <EFBFBD>
* @ return { ACL_XML2_ATTR * } xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Զ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ƿ <EFBFBD> ʱ <EFBFBD> ú <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> ڲ <EFBFBD> <EFBFBD> Զ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API ACL_XML2_ATTR * acl_xml2_node_add_attr ( ACL_XML2_NODE * node ,
const char * name , const char * value ) ;
/**
* <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԣ <EFBFBD> <EFBFBD> ú <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ <EFBFBD> <EFBFBD> <EFBFBD> ڹ <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ
* @ param node { ACL_XML2_NODE * } <EFBFBD> <EFBFBD> acl_xml2_create_node <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ľ ڵ <EFBFBD>
* @ param . . . һ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԣ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> NULL ʱ <EFBFBD> <EFBFBD> ʾ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 磺
* { name1 } , { value1 } , { name2 } , { value2 } , . . . NULL
*/
ACL_API void acl_xml2_node_add_attrs ( ACL_XML2_NODE * node , . . . ) ;
/**
2016-02-25 19:57:02 +08:00
* <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ı <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݣ <EFBFBD> <EFBFBD> ú <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ <EFBFBD> <EFBFBD> <EFBFBD> ڹ <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ý ڵ <EFBFBD> ֮ ǰ <EFBFBD> <EFBFBD> <EFBFBD> ı <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ı <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ԭ <EFBFBD> ı <EFBFBD>
2015-11-27 23:07:43 +08:00
* @ param node { ACL_XML2_NODE * } <EFBFBD> <EFBFBD> acl_xml2_create_node <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ľ ڵ <EFBFBD>
* @ param text { const char * } <EFBFBD> ı <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API void acl_xml2_node_set_text ( ACL_XML2_NODE * node , const char * text ) ;
2016-02-25 19:57:02 +08:00
/**
* <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ı <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݣ <EFBFBD> <EFBFBD> ú <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ <EFBFBD> <EFBFBD> <EFBFBD> ڹ <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʱ <EFBFBD> <EFBFBD> <EFBFBD> ڸ ý ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ı <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> µ <EFBFBD> <EFBFBD> ı <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param node { ACL_XML2_NODE * } <EFBFBD> <EFBFBD> acl_xml2_create_node <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ľ ڵ <EFBFBD>
* @ param text { const char * } <EFBFBD> ı <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API void acl_xml2_node_add_text ( ACL_XML2_NODE * node , const char * text ) ;
/**
* <EFBFBD> <EFBFBD> <EFBFBD> ļ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> е <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݸ <EFBFBD> һ <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ı <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param node { ACL_XML2_NODE * } <EFBFBD> <EFBFBD> acl_xml2_create_node <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ľ ڵ <EFBFBD>
* @ param in { ACL_VSTREAM * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param off { size_t } <EFBFBD> <EFBFBD> in Ϊ <EFBFBD> ļ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ļ <EFBFBD> <EFBFBD> е <EFBFBD> <EFBFBD> <EFBFBD> ʼ λ <EFBFBD> <EFBFBD>
* @ param len { size_t } Ҫ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ݳ <EFBFBD> <EFBFBD> ȣ <EFBFBD> <EFBFBD> <EFBFBD> Ϊ 0 ʱ <EFBFBD> <EFBFBD> һ ֱ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API void acl_xml2_node_set_text_stream ( ACL_XML2_NODE * node ,
ACL_VSTREAM * in , size_t off , size_t len ) ;
2015-11-27 23:07:43 +08:00
/**
* <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ת <EFBFBD> <EFBFBD> <EFBFBD> ַ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
2016-01-17 13:35:12 +08:00
* @ return { const char * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ת <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ַ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʼ <EFBFBD> <EFBFBD> ַ
2015-11-27 23:07:43 +08:00
*/
2015-12-03 17:00:07 +08:00
ACL_API const char * acl_xml2_build ( ACL_XML2 * xml ) ;
2015-11-27 23:07:43 +08:00
2016-02-25 19:57:02 +08:00
/**
* <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ת <EFBFBD> <EFBFBD> <EFBFBD> ַ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param xml { const ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param vbuf { ACL_VSTRING * } <EFBFBD> 洢 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ return { const char * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ת <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ַ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʼ <EFBFBD> <EFBFBD> ַ
*/
ACL_API const char * acl_xml2_build2 ( const ACL_XML2 * xml , ACL_VSTRING * vbuf ) ;
2015-11-27 23:07:43 +08:00
/**
* <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ת <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> У <EFBFBD> ע <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ת <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϣ <EFBFBD> <EFBFBD> Ϊ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> õ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param fp { ACL_VSTREAM * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API void acl_xml2_dump ( ACL_XML2 * xml , ACL_VSTREAM * fp ) ;
/**
* <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ת <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ָ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> У <EFBFBD> ע <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ת <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϣ <EFBFBD> <EFBFBD> Ϊ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> õ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param buf { ACL_VSTRING * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> Ҫ <EFBFBD> û <EFBFBD> <EFBFBD> Լ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ռ <EFBFBD>
*/
ACL_API void acl_xml2_dump2 ( ACL_XML2 * xml , ACL_VSTRING * buf ) ;
/***************************************************************************/
/* <20> <> <EFBFBD> <EFBFBD> Ϊ<EFBFBD> <CEAA> Ϊ<EFBFBD> ͼ<EFBFBD> <CDBC> Ľӿ<C4BD> , <20> û<EFBFBD> <C3BB> <EFBFBD> <EFBFBD> Ը<EFBFBD> <D4B8> <EFBFBD> <EFBFBD> <EFBFBD> Ҫ<EFBFBD> <D2AA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ½ӿ<C2BD> */
/***************************************************************************/
/*----------------------------- in acl_xml2.c ------------------------------*/
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ param node { ACL_XML2_NODE * } xml <EFBFBD> ڵ <EFBFBD>
* @ return { ACL_XML2_ATTR * } <EFBFBD> ´ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ľ ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API ACL_XML2_ATTR * acl_xml2_attr_alloc ( ACL_XML2_NODE * node ) ;
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> һ <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD>
* @ param xml { ACL_XML2 * } xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
* @ return { ACL_XML2_NODE * } xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API ACL_XML2_NODE * acl_xml2_node_alloc ( ACL_XML2 * xml ) ;
/**
* <EFBFBD> <EFBFBD> ij <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ 㼰 <EFBFBD> <EFBFBD> <EFBFBD> ӽ ڵ <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ɾ <EFBFBD> <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> ͷ Ÿ ý ڵ 㼰 <EFBFBD> <EFBFBD> <EFBFBD> ӽ ڵ <EFBFBD> <EFBFBD> <EFBFBD> ռ <EFBFBD> ռ <EFBFBD>
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ͷ Ÿ <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> ռ <EFBFBD> ڴ <EFBFBD>
* @ param node { ACL_XML2_NODE * } xml <EFBFBD> ڵ <EFBFBD>
* @ return { int } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ɾ <EFBFBD> <EFBFBD> <EFBFBD> Ľ ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API int acl_xml2_node_delete ( ACL_XML2_NODE * node ) ;
/**
* <EFBFBD> <EFBFBD> ij <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ֵ ܽ ڵ <EFBFBD> ( <EFBFBD> <EFBFBD> <EFBFBD> ֵ ܽ ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ƕ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> )
* @ param node1 { ACL_XML2_NODE * } <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD>
* @ param node2 { ACL_XML2_NODE * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ӵ <EFBFBD> <EFBFBD> ֵ <EFBFBD> xml <EFBFBD> ڵ <EFBFBD>
*/
ACL_API void acl_xml2_node_append ( ACL_XML2_NODE * node1 , ACL_XML2_NODE * node2 ) ;
/**
* <EFBFBD> <EFBFBD> ij <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> Ϊ <EFBFBD> ӽ ڵ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ij <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD>
* @ param parent { ACL_XML2_NODE * } <EFBFBD> <EFBFBD> <EFBFBD> ڵ <EFBFBD>
* @ param child { ACL_XML2_NODE * } <EFBFBD> ӽ ڵ <EFBFBD>
*/
ACL_API void acl_xml2_node_add_child ( ACL_XML2_NODE * parent , ACL_XML2_NODE * child ) ;
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ij <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> ĸ <EFBFBD> <EFBFBD> ڵ <EFBFBD>
* @ param node { ACL_XML2_NODE * } xml <EFBFBD> ڵ <EFBFBD>
* @ return { ACL_XML2_NODE * } <EFBFBD> <EFBFBD> <EFBFBD> ڵ <EFBFBD> , <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> Ϊ NULL <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʾ <EFBFBD> 丸 <EFBFBD> ڵ 㲻 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API ACL_XML2_NODE * acl_xml2_node_parent ( ACL_XML2_NODE * node ) ;
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ij <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> ĺ <EFBFBD> һ <EFBFBD> <EFBFBD> <EFBFBD> ֵ ܽ ڵ <EFBFBD>
* @ param node { ACL_XML2_NODE * } xml <EFBFBD> ڵ <EFBFBD>
* @ return { ACL_XML2_NODE * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> ĺ <EFBFBD> һ <EFBFBD> <EFBFBD> <EFBFBD> ֵ ܽ ڵ <EFBFBD> , <EFBFBD> <EFBFBD> Ϊ NULL <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʾ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API ACL_XML2_NODE * acl_xml2_node_next ( ACL_XML2_NODE * node ) ;
/**
* <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ij <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> ǰ һ <EFBFBD> <EFBFBD> <EFBFBD> ֵ ܽ ڵ <EFBFBD>
* @ param node { ACL_XML2_NODE * } xml <EFBFBD> ڵ <EFBFBD>
* @ return { ACL_XML2_NODE * } <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> xml <EFBFBD> ڵ <EFBFBD> <EFBFBD> <EFBFBD> ǰ һ <EFBFBD> <EFBFBD> <EFBFBD> ֵ ܽ ڵ <EFBFBD> , <EFBFBD> <EFBFBD> Ϊ NULL <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> ʾ <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD>
*/
ACL_API ACL_XML2_NODE * acl_xml2_node_prev ( ACL_XML2_NODE * node ) ;
# ifdef __cplusplus
}
# endif
# endif