diff options
Diffstat (limited to 'xmlreader.c')
-rw-r--r-- | xmlreader.c | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/xmlreader.c b/xmlreader.c index a5aba32..b467c1c 100644 --- a/xmlreader.c +++ b/xmlreader.c @@ -3215,7 +3215,7 @@ xmlTextReaderHasAttributes(xmlTextReaderPtr reader) { node = reader->node; if ((node->type == XML_ELEMENT_NODE) && - (node->properties != NULL)) + ((node->properties != NULL) || (node->nsDef != NULL))) return(1); /* TODO: handle the xmlDecl */ return(0); @@ -3569,6 +3569,43 @@ xmlTextReaderGetParserProp(xmlTextReaderPtr reader, int prop) { return(-1); } + +/** + * xmlTextReaderGetParserLineNumber: + * @reader: the user data (XML reader context) + * + * Provide the line number of the current parsing point. + * + * Returns an int or 0 if not available + */ +int +xmlTextReaderGetParserLineNumber(xmlTextReaderPtr reader) +{ + if ((reader == NULL) || (reader->ctxt == NULL) || + (reader->ctxt->input == NULL)) { + return (0); + } + return (reader->ctxt->input->line); +} + +/** + * xmlTextReaderGetParserColumnNumber: + * @reader: the user data (XML reader context) + * + * Provide the column number of the current parsing point. + * + * Returns an int or 0 if not available + */ +int +xmlTextReaderGetParserColumnNumber(xmlTextReaderPtr reader) +{ + if ((reader == NULL) || (reader->ctxt == NULL) || + (reader->ctxt->input == NULL)) { + return (0); + } + return (reader->ctxt->input->col); +} + /** * xmlTextReaderCurrentNode: * @reader: the xmlTextReaderPtr used |