static int ReaderUseDTD ( xml_reader_t *p_reader, bool b_use ) { /* Activate DTD validation */ xmlTextReaderSetParserProp( p_reader->p_sys->p_reader, XML_PARSER_DEFAULTATTRS, b_use ); xmlTextReaderSetParserProp( p_reader->p_sys->p_reader, XML_PARSER_VALIDATE, b_use ); return VLC_SUCCESS; }
/* {{{ proto boolean XMLReader::setParserProperty(int property, boolean value) Sets parser property (one of the parser option constants). Properties must be set after open() or XML() and before the first read() is called */ PHP_METHOD(xmlreader, setParserProperty) { zval *id; zend_long property; int retval = -1; zend_bool value; xmlreader_object *intern; if (zend_parse_parameters(ZEND_NUM_ARGS(), "lb", &property, &value) == FAILURE) { return; } id = getThis(); intern = Z_XMLREADER_P(id); if (intern && intern->ptr) { retval = xmlTextReaderSetParserProp(intern->ptr,property, value); } if (retval == -1) { php_error_docref(NULL, E_WARNING, "Invalid parser property"); RETURN_FALSE; } RETURN_TRUE; }
static void handleFile(const char *filename) { xmlTextReaderPtr reader; int ret; if (count) { elem = 0; attrs = 0; } reader = xmlNewTextReaderFilename(filename); if (reader != NULL) { if (valid) xmlTextReaderSetParserProp(reader, XML_PARSER_VALIDATE, 1); /* * Process all nodes in sequence */ ret = xmlTextReaderRead(reader); while (ret == 1) { processNode(reader); ret = xmlTextReaderRead(reader); } /* * Done, cleanup and status */ xmlFreeTextReader(reader); if (ret != 0) { printf("%s : failed to parse\n", filename); } else if (count) printf("%s : %d elements, %d attributes\n", filename, elem, attrs); } else { fprintf(stderr, "Unable to open %s\n", filename); } }
XMLParser::XMLParser( intf_thread_t *pIntf, const string &rFileName ): SkinObject( pIntf ) { m_pReader = xmlNewTextReaderFilename( rFileName.c_str() ); if( !m_pReader ) { msg_Err( getIntf(), "Failed to open %s for parsing", rFileName.c_str() ); return; } // Activate DTD validation xmlTextReaderSetParserProp( m_pReader, XML_PARSER_DEFAULTATTRS, 1 ); xmlTextReaderSetParserProp( m_pReader, XML_PARSER_VALIDATE, 1 ); // Set the error handler xmlTextReaderSetErrorHandler( m_pReader, handleError, this ); }
bool c_XMLReader::t_setparserproperty(int64_t property, bool value) { if (m_ptr) { int ret = xmlTextReaderSetParserProp(m_ptr, property, value); if (ret == -1) { raise_warning("Invalid parser property"); return false; } return true; } return false; }
bool c_XMLReader::t_setparserproperty(int64 property, bool value) { INSTANCE_METHOD_INJECTION_BUILTIN(XMLReader, XMLReader::setparserproperty); if (m_ptr) { int ret = xmlTextReaderSetParserProp(m_ptr, property, value); if (ret == -1) { raise_warning("Invalid parser property"); return false; } return true; } return false; }
bool HHVM_METHOD(XMLReader, setParserProperty, int64_t property, bool value) { auto* data = Native::data<XMLReader>(this_); if (data->m_ptr) { int ret = xmlTextReaderSetParserProp(data->m_ptr, property, value); if (ret == -1) { raise_warning("Invalid parser property"); return false; } return true; } return false; }
BusConfigParser* bus_config_load (const DBusString *file, dbus_bool_t is_toplevel, const BusConfigParser *parent, DBusError *error) { xmlTextReader *reader; BusConfigParser *parser; DBusString dirname, data; DBusError tmp_error; int ret; _DBUS_ASSERT_ERROR_IS_CLEAR (error); parser = NULL; reader = NULL; if (!_dbus_string_init (&dirname)) { _DBUS_SET_OOM (error); return NULL; } if (!_dbus_string_init (&data)) { _DBUS_SET_OOM (error); _dbus_string_free (&dirname); return NULL; } if (is_toplevel) { /* xmlMemSetup only fails if one of the functions is NULL */ /* xmlMemSetup (dbus_free, dbus_malloc, dbus_realloc, _dbus_strdup); */ xmlInitParser (); xmlSetGenericErrorFunc (NULL, xml_shut_up); } if (!_dbus_string_get_dirname (file, &dirname)) { _DBUS_SET_OOM (error); goto failed; } parser = bus_config_parser_new (&dirname, is_toplevel, parent); if (parser == NULL) { _DBUS_SET_OOM (error); goto failed; } if (!_dbus_file_get_contents (&data, file, error)) goto failed; reader = xmlReaderForMemory (_dbus_string_get_const_data (&data), _dbus_string_get_length (&data), NULL, NULL, 0); if (reader == NULL) { _DBUS_SET_OOM (error); goto failed; } xmlTextReaderSetParserProp (reader, XML_PARSER_SUBST_ENTITIES, 1); dbus_error_init (&tmp_error); xmlTextReaderSetStructuredErrorHandler (reader, xml_text_reader_error, &tmp_error); while ((ret = xmlTextReaderRead (reader)) == 1) { int type; if (dbus_error_is_set (&tmp_error)) goto reader_out; type = xmlTextReaderNodeType (reader); if (type == -1) { _DBUS_MAYBE_SET_OOM (&tmp_error); goto reader_out; } switch ((xmlReaderTypes) type) { case XML_READER_TYPE_ELEMENT: xml_text_start_element (parser, reader, &tmp_error); break; case XML_READER_TYPE_TEXT: case XML_READER_TYPE_CDATA: { DBusString content; const char *value; #ifdef __SYMBIAN32__ value = (const char *) xmlTextReaderConstValue (reader); #else value = xmlTextReaderConstValue (reader); #endif if (value != NULL) { _dbus_string_init_const (&content, value); bus_config_parser_content (parser, &content, &tmp_error); } else _DBUS_MAYBE_SET_OOM (&tmp_error); break; } case XML_READER_TYPE_DOCUMENT_TYPE: { const char *name; #ifdef __SYMBIAN32__ name = (const char *) xmlTextReaderConstName (reader); #else name = xmlTextReaderConstName (reader); #endif if (name != NULL) bus_config_parser_check_doctype (parser, name, &tmp_error); else _DBUS_MAYBE_SET_OOM (&tmp_error); break; } case XML_READER_TYPE_END_ELEMENT: { const char *name; #ifdef __SYMBIAN32__ name = (const char *) xmlTextReaderConstName (reader); #else name = xmlTextReaderConstName (reader); #endif if (name != NULL) bus_config_parser_end_element (parser, name, &tmp_error); else _DBUS_MAYBE_SET_OOM (&tmp_error); break; } case XML_READER_TYPE_DOCUMENT: case XML_READER_TYPE_DOCUMENT_FRAGMENT: case XML_READER_TYPE_PROCESSING_INSTRUCTION: case XML_READER_TYPE_COMMENT: case XML_READER_TYPE_ENTITY: case XML_READER_TYPE_NOTATION: case XML_READER_TYPE_WHITESPACE: case XML_READER_TYPE_SIGNIFICANT_WHITESPACE: case XML_READER_TYPE_END_ENTITY: case XML_READER_TYPE_XML_DECLARATION: /* nothing to do, just read on */ break; case XML_READER_TYPE_NONE: case XML_READER_TYPE_ATTRIBUTE: case XML_READER_TYPE_ENTITY_REFERENCE: _dbus_assert_not_reached ("unexpected nodes in XML"); } if (dbus_error_is_set (&tmp_error)) goto reader_out; } if (ret == -1) _DBUS_MAYBE_SET_OOM (&tmp_error); reader_out: xmlFreeTextReader (reader); reader = NULL; if (dbus_error_is_set (&tmp_error)) { dbus_move_error (&tmp_error, error); goto failed; } if (!bus_config_parser_finished (parser, error)) goto failed; _dbus_string_free (&dirname); _dbus_string_free (&data); if (is_toplevel) xmlCleanupParser(); _DBUS_ASSERT_ERROR_IS_CLEAR (error); return parser; failed: _DBUS_ASSERT_ERROR_IS_SET (error); _dbus_string_free (&dirname); _dbus_string_free (&data); if (is_toplevel) xmlCleanupParser(); if (parser) bus_config_parser_unref (parser); _dbus_assert (reader == NULL); /* must go to reader_out first */ return NULL; }