* xmlTextReaderConstName: * @reader: the xmlTextReaderPtr used * * The qualified name of the node, equal to Prefix :LocalName. * * Returns the local name or NULL if not available, the string is * deallocated with the reader. */
| 3249 | * deallocated with the reader. |
| 3250 | */ |
| 3251 | const xmlChar * |
| 3252 | xmlTextReaderConstName(xmlTextReaderPtr reader) { |
| 3253 | xmlNodePtr node; |
| 3254 | |
| 3255 | if ((reader == NULL) || (reader->node == NULL)) |
| 3256 | return(NULL); |
| 3257 | if (reader->curnode != NULL) |
| 3258 | node = reader->curnode; |
| 3259 | else |
| 3260 | node = reader->node; |
| 3261 | switch (node->type) { |
| 3262 | case XML_ELEMENT_NODE: |
| 3263 | case XML_ATTRIBUTE_NODE: |
| 3264 | if ((node->ns == NULL) || |
| 3265 | (node->ns->prefix == NULL)) |
| 3266 | return(node->name); |
| 3267 | return(constQString(reader, node->ns->prefix, node->name)); |
| 3268 | case XML_TEXT_NODE: |
| 3269 | return(constString(reader, BAD_CAST "#text")); |
| 3270 | case XML_CDATA_SECTION_NODE: |
| 3271 | return(constString(reader, BAD_CAST "#cdata-section")); |
| 3272 | case XML_ENTITY_NODE: |
| 3273 | case XML_ENTITY_REF_NODE: |
| 3274 | return(constString(reader, node->name)); |
| 3275 | case XML_PI_NODE: |
| 3276 | return(constString(reader, node->name)); |
| 3277 | case XML_COMMENT_NODE: |
| 3278 | return(constString(reader, BAD_CAST "#comment")); |
| 3279 | case XML_DOCUMENT_NODE: |
| 3280 | case XML_HTML_DOCUMENT_NODE: |
| 3281 | return(constString(reader, BAD_CAST "#document")); |
| 3282 | case XML_DOCUMENT_FRAG_NODE: |
| 3283 | return(constString(reader, BAD_CAST "#document-fragment")); |
| 3284 | case XML_NOTATION_NODE: |
| 3285 | return(constString(reader, node->name)); |
| 3286 | case XML_DOCUMENT_TYPE_NODE: |
| 3287 | case XML_DTD_NODE: |
| 3288 | return(constString(reader, node->name)); |
| 3289 | case XML_NAMESPACE_DECL: { |
| 3290 | xmlNsPtr ns = (xmlNsPtr) node; |
| 3291 | |
| 3292 | if (ns->prefix == NULL) |
| 3293 | return(constString(reader, BAD_CAST "xmlns")); |
| 3294 | return(constQString(reader, BAD_CAST "xmlns", ns->prefix)); |
| 3295 | } |
| 3296 | |
| 3297 | case XML_ELEMENT_DECL: |
| 3298 | case XML_ATTRIBUTE_DECL: |
| 3299 | case XML_ENTITY_DECL: |
| 3300 | case XML_XINCLUDE_START: |
| 3301 | case XML_XINCLUDE_END: |
| 3302 | return(NULL); |
| 3303 | } |
| 3304 | return(NULL); |
| 3305 | } |
| 3306 | |
| 3307 | /** |
| 3308 | * xmlTextReaderPrefix: |