xine-lib 1.2.11
|
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <ctype.h>
#include <xine/xineutils.h>
#include <xine/xmllexer.h>
#include <xine/xmlparser.h>
Macros | |
#define | LOG_MODULE "xmlparser" |
#define | LOG_VERBOSE |
#define | TOKEN_SIZE 4 * 1024 |
#define | DATA_SIZE 4 * 1024 |
#define | MAX_RECURSION 10 |
#define | Q_STATE(CURRENT, NEW) (STATE_##NEW + state - STATE_##CURRENT) |
Enumerations | |
enum | parser_state_t { STATE_IDLE , STATE_NODE , STATE_ATTRIBUTE , STATE_NODE_CLOSE , STATE_TAG_TERM , STATE_ATTRIBUTE_EQUALS , STATE_STRING , STATE_TAG_TERM_IGNORE , STATE_Q_NODE , STATE_Q_ATTRIBUTE , STATE_Q_NODE_CLOSE , STATE_Q_TAG_TERM , STATE_Q_ATTRIBUTE_EQUALS , STATE_Q_STRING , STATE_COMMENT , STATE_DOCTYPE , STATE_CDATA } |
Functions | |
static char * | strtoupper (char *str) |
static xml_node_t * | new_xml_node (void) |
static void | free_xml_node (xml_node_t *node) |
static xml_property_t * | new_xml_property (void) |
static void | free_xml_property (xml_property_t *property) |
void | xml_parser_init (const char *buf, int size, int mode) |
xml_parser_t * | xml_parser_init_r (const char *buf, int size, int mode) |
void | xml_parser_finalize_r (xml_parser_t *xml_parser) |
static void | xml_parser_free_props (xml_property_t *current_property) |
static void | xml_parser_free_tree_rec (xml_node_t *current_node, int free_next) |
void | xml_parser_free_tree (xml_node_t *current_node) |
static xml_node_t * | xml_parser_append_text (xml_node_t *node, xml_node_t *subnode, const char *text, int flags) |
static int | xml_parser_get_node_internal (xml_parser_t *xml_parser, char **token_buffer, int *token_buffer_size, char **pname_buffer, int *pname_buffer_size, char **nname_buffer, int *nname_buffer_size, xml_node_t *current_node, char *root_names[], int rec, int flags) |
static int | xml_parser_get_node (xml_parser_t *xml_parser, xml_node_t *current_node, int flags) |
int | xml_parser_build_tree_with_options (xml_node_t **root_node, int flags) |
int | xml_parser_build_tree_with_options_r (xml_parser_t *xml_parser, xml_node_t **root_node, int flags) |
int | xml_parser_build_tree (xml_node_t **root_node) |
int | xml_parser_build_tree_r (xml_parser_t *xml_parser, xml_node_t **root_node) |
const char * | xml_parser_get_property (const xml_node_t *node, const char *name) |
int | xml_parser_get_property_int (const xml_node_t *node, const char *name, int def_value) |
int | xml_parser_get_property_bool (const xml_node_t *node, const char *name, int def_value) |
static int | xml_escape_string_internal (char *buf, const char *s, xml_escape_quote_t quote_type) |
char * | xml_escape_string (const char *s, xml_escape_quote_t quote_type) |
static void | xml_parser_dump_node (const xml_node_t *node, int indent) |
void | xml_parser_dump_tree (const xml_node_t *node) |
Variables | |
xml_parser_t * | static_xml_parser |
static const char | cdata [] = CDATA_MARKER |
#define DATA_SIZE 4 * 1024 |
#define LOG_MODULE "xmlparser" |
#define LOG_VERBOSE |
#define MAX_RECURSION 10 |
#define Q_STATE | ( | CURRENT, | |
NEW | |||
) | (STATE_##NEW + state - STATE_##CURRENT) |
#define TOKEN_SIZE 4 * 1024 |
enum parser_state_t |
|
static |
References _x_freep(), cdata, xml_node_s::data, and xml_node_s::name.
Referenced by xml_parser_build_tree_with_options_r(), and xml_parser_free_tree_rec().
|
static |
References _x_freep(), xml_property_s::name, and xml_property_s::value.
Referenced by xml_parser_free_props().
|
static |
Referenced by xml_parser_append_text(), xml_parser_build_tree_with_options_r(), and xml_parser_get_node_internal().
|
static |
Referenced by xml_parser_get_node_internal().
|
static |
Referenced by xml_parser_get_node_internal().
char * xml_escape_string | ( | const char * | s, |
xml_escape_quote_t | quote_type | ||
) |
References NULL, and xml_escape_string_internal().
Referenced by xml_parser_dump_node().
|
static |
References XML_ESCAPE_DOUBLE_QUOTE, and XML_ESCAPE_SINGLE_QUOTE.
Referenced by xml_escape_string().
|
static |
References cdata, xml_node_s::data, xml_node_s::name, new_xml_node(), xml_node_s::next, NULL, and XML_PARSER_MULTI_TEXT.
Referenced by xml_parser_get_node_internal().
int xml_parser_build_tree | ( | xml_node_t ** | root_node | ) |
References static_xml_parser, and xml_parser_build_tree_with_options_r().
int xml_parser_build_tree_r | ( | xml_parser_t * | xml_parser, |
xml_node_t ** | root_node | ||
) |
References xml_parser_build_tree_with_options_r().
Referenced by demux_asf_parse_asx_references(), parse_asx(), parse_qtl(), parse_rss(), parse_smi(), parse_xspf(), and spudec_decode_data().
int xml_parser_build_tree_with_options | ( | xml_node_t ** | root_node, |
int | flags | ||
) |
References static_xml_parser, and xml_parser_build_tree_with_options_r().
int xml_parser_build_tree_with_options_r | ( | xml_parser_t * | xml_parser, |
xml_node_t ** | root_node, | ||
int | flags | ||
) |
References cdata, xml_node_s::child, free_xml_node(), lprintf, xml_node_s::name, new_xml_node(), xml_node_s::next, NULL, xml_parser_free_tree(), and xml_parser_get_node().
Referenced by xml_parser_build_tree(), xml_parser_build_tree_r(), and xml_parser_build_tree_with_options().
|
static |
References xml_node_s::child, xml_node_s::data, xml_property_s::name, xml_node_s::name, xml_property_s::next, xml_node_s::next, xml_node_s::props, xml_property_s::value, XML_ESCAPE_SINGLE_QUOTE, xml_escape_string(), and xml_parser_dump_node().
Referenced by xml_parser_dump_node(), and xml_parser_dump_tree().
void xml_parser_dump_tree | ( | const xml_node_t * | node | ) |
References xml_node_s::next, and xml_parser_dump_node().
void xml_parser_finalize_r | ( | xml_parser_t * | xml_parser | ) |
References xml_parser_s::lexer, and lexer_finalize_r().
Referenced by demux_asf_parse_asx_references(), parse_asx(), parse_qtl(), parse_rss(), parse_smi(), parse_xspf(), spudec_decode_data(), and xml_parser_init().
|
static |
References free_xml_property(), and xml_property_s::next.
Referenced by xml_parser_free_tree_rec(), and xml_parser_get_node_internal().
void xml_parser_free_tree | ( | xml_node_t * | current_node | ) |
References lprintf, and xml_parser_free_tree_rec().
Referenced by demux_asf_parse_asx_references(), parse_asx(), parse_qtl(), parse_rss(), parse_smi(), parse_xspf(), and xml_parser_build_tree_with_options_r().
|
static |
References xml_node_s::child, free_xml_node(), lprintf, xml_node_s::name, xml_node_s::next, xml_node_s::props, xml_parser_free_props(), and xml_parser_free_tree_rec().
Referenced by xml_parser_free_tree(), xml_parser_free_tree_rec(), and xml_parser_get_node_internal().
|
static |
References MAX_RECURSION, TOKEN_SIZE, and xml_parser_get_node_internal().
Referenced by xml_parser_build_tree_with_options_r().
|
static |
References _x_assert, xml_node_s::child, xml_node_s::data, xml_parser_s::lexer, lexer_decode_entities(), lexer_get_token_d_r(), lprintf, MAX_RECURSION, xml_parser_s::mode, xml_property_s::name, xml_node_s::name, new_xml_node(), new_xml_property(), xml_property_s::next, xml_node_s::next, NULL, xml_node_s::props, Q_STATE, STATE_ATTRIBUTE, STATE_ATTRIBUTE_EQUALS, STATE_CDATA, STATE_COMMENT, STATE_DOCTYPE, STATE_IDLE, STATE_NODE, STATE_NODE_CLOSE, STATE_Q_ATTRIBUTE, STATE_Q_ATTRIBUTE_EQUALS, STATE_Q_NODE, STATE_Q_STRING, STATE_STRING, STATE_TAG_TERM, STATE_TAG_TERM_IGNORE, STRING, strtoupper(), T_C_START, T_C_STOP, T_CDATA_START, T_CDATA_STOP, T_DATA, T_DOCTYPE_START, T_EOF, T_EOL, T_EQUAL, T_ERROR, T_IDENT, T_M_START_1, T_M_START_2, T_M_STOP_1, T_M_STOP_2, T_SEPAR, T_STRING, T_TI_START, T_TI_STOP, xml_property_s::value, xml_parser_append_text(), XML_PARSER_CASE_INSENSITIVE, xml_parser_free_props(), xml_parser_free_tree_rec(), xml_parser_get_node_internal(), and XML_PARSER_RELAXED.
Referenced by xml_parser_get_node(), and xml_parser_get_node_internal().
const char * xml_parser_get_property | ( | const xml_node_t * | node, |
const char * | name | ||
) |
References lprintf, xml_property_s::name, name, xml_property_s::next, NULL, xml_node_s::props, and xml_property_s::value.
Referenced by asx_get_time_value(), demux_asf_parse_asx_references(), parse_asx(), parse_qtl(), parse_rss(), parse_smi(), xml_parser_get_property_bool(), and xml_parser_get_property_int().
int xml_parser_get_property_bool | ( | const xml_node_t * | node, |
const char * | name, | ||
int | def_value | ||
) |
References name, and xml_parser_get_property().
int xml_parser_get_property_int | ( | const xml_node_t * | node, |
const char * | name, | ||
int | def_value | ||
) |
References name, and xml_parser_get_property().
void xml_parser_init | ( | const char * | buf, |
int | size, | ||
int | mode | ||
) |
References mode(), static_xml_parser, xml_parser_finalize_r(), and xml_parser_init_r().
xml_parser_t * xml_parser_init_r | ( | const char * | buf, |
int | size, | ||
int | mode | ||
) |
References xml_parser_s::lexer, lexer_init_r(), xml_parser_s::mode, mode(), and NULL.
Referenced by demux_asf_parse_asx_references(), parse_asx(), parse_qtl(), parse_rss(), parse_smi(), parse_xspf(), spudec_decode_data(), and xml_parser_init().
|
static |
Referenced by free_xml_node(), xml_parser_append_text(), and xml_parser_build_tree_with_options_r().
xml_parser_t* static_xml_parser |
Referenced by xml_parser_build_tree(), xml_parser_build_tree_with_options(), and xml_parser_init().