* xmlTextReaderNodeType: * @reader: the xmlTextReaderPtr used * * Get the node type of the current node * Reference: * http://www.gnu.org/software/dotgnu/pnetlib-doc/System/Xml/XmlNodeType.html * * Returns the xmlReaderTypes of the current node or -1 in case of error */
| 3015 | * Returns the xmlReaderTypes of the current node or -1 in case of error |
| 3016 | */ |
| 3017 | int |
| 3018 | xmlTextReaderNodeType(xmlTextReaderPtr reader) { |
| 3019 | xmlNodePtr node; |
| 3020 | |
| 3021 | if (reader == NULL) |
| 3022 | return(-1); |
| 3023 | if (reader->node == NULL) |
| 3024 | return(XML_READER_TYPE_NONE); |
| 3025 | if (reader->curnode != NULL) |
| 3026 | node = reader->curnode; |
| 3027 | else |
| 3028 | node = reader->node; |
| 3029 | switch (node->type) { |
| 3030 | case XML_ELEMENT_NODE: |
| 3031 | if ((reader->state == XML_TEXTREADER_END) || |
| 3032 | (reader->state == XML_TEXTREADER_BACKTRACK)) |
| 3033 | return(XML_READER_TYPE_END_ELEMENT); |
| 3034 | return(XML_READER_TYPE_ELEMENT); |
| 3035 | case XML_NAMESPACE_DECL: |
| 3036 | case XML_ATTRIBUTE_NODE: |
| 3037 | return(XML_READER_TYPE_ATTRIBUTE); |
| 3038 | case XML_TEXT_NODE: |
| 3039 | if (xmlIsBlankNode(reader->node)) { |
| 3040 | if (xmlNodeGetSpacePreserve(reader->node)) |
| 3041 | return(XML_READER_TYPE_SIGNIFICANT_WHITESPACE); |
| 3042 | else |
| 3043 | return(XML_READER_TYPE_WHITESPACE); |
| 3044 | } else { |
| 3045 | return(XML_READER_TYPE_TEXT); |
| 3046 | } |
| 3047 | case XML_CDATA_SECTION_NODE: |
| 3048 | return(XML_READER_TYPE_CDATA); |
| 3049 | case XML_ENTITY_REF_NODE: |
| 3050 | return(XML_READER_TYPE_ENTITY_REFERENCE); |
| 3051 | case XML_ENTITY_NODE: |
| 3052 | return(XML_READER_TYPE_ENTITY); |
| 3053 | case XML_PI_NODE: |
| 3054 | return(XML_READER_TYPE_PROCESSING_INSTRUCTION); |
| 3055 | case XML_COMMENT_NODE: |
| 3056 | return(XML_READER_TYPE_COMMENT); |
| 3057 | case XML_DOCUMENT_NODE: |
| 3058 | case XML_HTML_DOCUMENT_NODE: |
| 3059 | return(XML_READER_TYPE_DOCUMENT); |
| 3060 | case XML_DOCUMENT_FRAG_NODE: |
| 3061 | return(XML_READER_TYPE_DOCUMENT_FRAGMENT); |
| 3062 | case XML_NOTATION_NODE: |
| 3063 | return(XML_READER_TYPE_NOTATION); |
| 3064 | case XML_DOCUMENT_TYPE_NODE: |
| 3065 | case XML_DTD_NODE: |
| 3066 | return(XML_READER_TYPE_DOCUMENT_TYPE); |
| 3067 | |
| 3068 | case XML_ELEMENT_DECL: |
| 3069 | case XML_ATTRIBUTE_DECL: |
| 3070 | case XML_ENTITY_DECL: |
| 3071 | case XML_XINCLUDE_START: |
| 3072 | case XML_XINCLUDE_END: |
| 3073 | return(XML_READER_TYPE_NONE); |
| 3074 | } |