Download NHK English news podcast automatically. XML Parser "spxml" is used. This application requires mpod mother board. See also http://mbed.org/users/geodenx/notebook/mpod/
Dependencies: BlinkLed HTTPClient EthernetInterface FatFileSystemCpp MSCFileSystem spxml mbed-rtos mbed
Fork of mpod_nhk_english by
Download NHK English news podcast automatically.
XML Parser "spxml" is used.
This application requires mpod mother board.
See also http://mbed.org/users/geodenx/notebook/mpod/
spxml/spxmlnode.hpp@4:7dae52cf560f, 2012-08-20 (annotated)
- Committer:
- togayan
- Date:
- Mon Aug 20 13:27:17 2012 +0000
- Revision:
- 4:7dae52cf560f
1st revision
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
togayan | 4:7dae52cf560f | 1 | /* |
togayan | 4:7dae52cf560f | 2 | * Copyright 2007 Stephen Liu |
togayan | 4:7dae52cf560f | 3 | * For license terms, see the file COPYING along with this library. |
togayan | 4:7dae52cf560f | 4 | */ |
togayan | 4:7dae52cf560f | 5 | |
togayan | 4:7dae52cf560f | 6 | #ifndef __spxmlnode_hpp__ |
togayan | 4:7dae52cf560f | 7 | #define __spxmlnode_hpp__ |
togayan | 4:7dae52cf560f | 8 | |
togayan | 4:7dae52cf560f | 9 | class SP_XmlArrayList; |
togayan | 4:7dae52cf560f | 10 | |
togayan | 4:7dae52cf560f | 11 | class SP_XmlNode { |
togayan | 4:7dae52cf560f | 12 | public: |
togayan | 4:7dae52cf560f | 13 | enum { eXMLDOC, eDOCDECL, ePI, eDOCTYPE, eELEMENT, eCDATA, eCOMMENT }; |
togayan | 4:7dae52cf560f | 14 | |
togayan | 4:7dae52cf560f | 15 | SP_XmlNode( int type ); |
togayan | 4:7dae52cf560f | 16 | virtual ~SP_XmlNode(); |
togayan | 4:7dae52cf560f | 17 | |
togayan | 4:7dae52cf560f | 18 | void setParent( SP_XmlNode * parent ); |
togayan | 4:7dae52cf560f | 19 | const SP_XmlNode * getParent() const; |
togayan | 4:7dae52cf560f | 20 | int getType() const; |
togayan | 4:7dae52cf560f | 21 | |
togayan | 4:7dae52cf560f | 22 | protected: |
togayan | 4:7dae52cf560f | 23 | SP_XmlNode( SP_XmlNode & ); |
togayan | 4:7dae52cf560f | 24 | SP_XmlNode & operator=( SP_XmlNode & ); |
togayan | 4:7dae52cf560f | 25 | |
togayan | 4:7dae52cf560f | 26 | private: |
togayan | 4:7dae52cf560f | 27 | SP_XmlNode * mParent; |
togayan | 4:7dae52cf560f | 28 | const int mType; |
togayan | 4:7dae52cf560f | 29 | }; |
togayan | 4:7dae52cf560f | 30 | |
togayan | 4:7dae52cf560f | 31 | class SP_XmlNodeList { |
togayan | 4:7dae52cf560f | 32 | public: |
togayan | 4:7dae52cf560f | 33 | SP_XmlNodeList(); |
togayan | 4:7dae52cf560f | 34 | ~SP_XmlNodeList(); |
togayan | 4:7dae52cf560f | 35 | |
togayan | 4:7dae52cf560f | 36 | int getLength() const; |
togayan | 4:7dae52cf560f | 37 | void append( SP_XmlNode * node ); |
togayan | 4:7dae52cf560f | 38 | SP_XmlNode * get( int index ) const; |
togayan | 4:7dae52cf560f | 39 | SP_XmlNode * take( int index ) const; |
togayan | 4:7dae52cf560f | 40 | |
togayan | 4:7dae52cf560f | 41 | private: |
togayan | 4:7dae52cf560f | 42 | SP_XmlNodeList( SP_XmlNodeList & ); |
togayan | 4:7dae52cf560f | 43 | SP_XmlNodeList & operator=( SP_XmlNodeList & ); |
togayan | 4:7dae52cf560f | 44 | |
togayan | 4:7dae52cf560f | 45 | SP_XmlArrayList * mList; |
togayan | 4:7dae52cf560f | 46 | }; |
togayan | 4:7dae52cf560f | 47 | |
togayan | 4:7dae52cf560f | 48 | class SP_XmlPIEvent; |
togayan | 4:7dae52cf560f | 49 | class SP_XmlDocDeclEvent; |
togayan | 4:7dae52cf560f | 50 | class SP_XmlDocTypeEvent; |
togayan | 4:7dae52cf560f | 51 | class SP_XmlStartTagEvent; |
togayan | 4:7dae52cf560f | 52 | class SP_XmlCDataEvent; |
togayan | 4:7dae52cf560f | 53 | class SP_XmlCommentEvent; |
togayan | 4:7dae52cf560f | 54 | |
togayan | 4:7dae52cf560f | 55 | class SP_XmlElementNode; |
togayan | 4:7dae52cf560f | 56 | class SP_XmlDocDeclNode; |
togayan | 4:7dae52cf560f | 57 | class SP_XmlDocTypeNode; |
togayan | 4:7dae52cf560f | 58 | |
togayan | 4:7dae52cf560f | 59 | class SP_XmlDocument : public SP_XmlNode { |
togayan | 4:7dae52cf560f | 60 | public: |
togayan | 4:7dae52cf560f | 61 | SP_XmlDocument(); |
togayan | 4:7dae52cf560f | 62 | virtual ~SP_XmlDocument(); |
togayan | 4:7dae52cf560f | 63 | |
togayan | 4:7dae52cf560f | 64 | void setDocDecl( SP_XmlDocDeclNode * docDecl ); |
togayan | 4:7dae52cf560f | 65 | SP_XmlDocDeclNode * getDocDecl() const; |
togayan | 4:7dae52cf560f | 66 | void setDocType( SP_XmlDocTypeNode * docType ); |
togayan | 4:7dae52cf560f | 67 | SP_XmlDocTypeNode * getDocType() const; |
togayan | 4:7dae52cf560f | 68 | void setRootElement( SP_XmlElementNode * rootElement ); |
togayan | 4:7dae52cf560f | 69 | SP_XmlElementNode * getRootElement() const; |
togayan | 4:7dae52cf560f | 70 | SP_XmlNodeList * getChildren() const; |
togayan | 4:7dae52cf560f | 71 | |
togayan | 4:7dae52cf560f | 72 | private: |
togayan | 4:7dae52cf560f | 73 | SP_XmlDocDeclNode * mDocDecl; |
togayan | 4:7dae52cf560f | 74 | SP_XmlDocTypeNode * mDocType; |
togayan | 4:7dae52cf560f | 75 | SP_XmlNodeList * mChildren; |
togayan | 4:7dae52cf560f | 76 | }; |
togayan | 4:7dae52cf560f | 77 | |
togayan | 4:7dae52cf560f | 78 | class SP_XmlPINode : public SP_XmlNode { |
togayan | 4:7dae52cf560f | 79 | public: |
togayan | 4:7dae52cf560f | 80 | SP_XmlPINode(); |
togayan | 4:7dae52cf560f | 81 | SP_XmlPINode( SP_XmlPIEvent * event ); |
togayan | 4:7dae52cf560f | 82 | virtual ~SP_XmlPINode(); |
togayan | 4:7dae52cf560f | 83 | |
togayan | 4:7dae52cf560f | 84 | void setTarget( const char * target ); |
togayan | 4:7dae52cf560f | 85 | const char * getTarget(); |
togayan | 4:7dae52cf560f | 86 | |
togayan | 4:7dae52cf560f | 87 | void setData( const char * data ); |
togayan | 4:7dae52cf560f | 88 | const char * getData(); |
togayan | 4:7dae52cf560f | 89 | |
togayan | 4:7dae52cf560f | 90 | private: |
togayan | 4:7dae52cf560f | 91 | SP_XmlPIEvent * mEvent; |
togayan | 4:7dae52cf560f | 92 | }; |
togayan | 4:7dae52cf560f | 93 | |
togayan | 4:7dae52cf560f | 94 | class SP_XmlDocDeclNode : public SP_XmlNode { |
togayan | 4:7dae52cf560f | 95 | public: |
togayan | 4:7dae52cf560f | 96 | SP_XmlDocDeclNode(); |
togayan | 4:7dae52cf560f | 97 | SP_XmlDocDeclNode( SP_XmlDocDeclEvent * event ); |
togayan | 4:7dae52cf560f | 98 | virtual ~SP_XmlDocDeclNode(); |
togayan | 4:7dae52cf560f | 99 | |
togayan | 4:7dae52cf560f | 100 | void setVersion( const char * version ); |
togayan | 4:7dae52cf560f | 101 | const char * getVersion() const; |
togayan | 4:7dae52cf560f | 102 | void setEncoding( const char * encoding ); |
togayan | 4:7dae52cf560f | 103 | const char * getEncoding() const; |
togayan | 4:7dae52cf560f | 104 | void setStandalone( int standalone ); |
togayan | 4:7dae52cf560f | 105 | int getStandalone() const; |
togayan | 4:7dae52cf560f | 106 | |
togayan | 4:7dae52cf560f | 107 | private: |
togayan | 4:7dae52cf560f | 108 | SP_XmlDocDeclEvent * mEvent; |
togayan | 4:7dae52cf560f | 109 | }; |
togayan | 4:7dae52cf560f | 110 | |
togayan | 4:7dae52cf560f | 111 | class SP_XmlDocTypeNode : public SP_XmlNode { |
togayan | 4:7dae52cf560f | 112 | public: |
togayan | 4:7dae52cf560f | 113 | SP_XmlDocTypeNode(); |
togayan | 4:7dae52cf560f | 114 | SP_XmlDocTypeNode( SP_XmlDocTypeEvent * event ); |
togayan | 4:7dae52cf560f | 115 | virtual ~SP_XmlDocTypeNode(); |
togayan | 4:7dae52cf560f | 116 | |
togayan | 4:7dae52cf560f | 117 | void setName( const char * name ); |
togayan | 4:7dae52cf560f | 118 | const char * getName() const; |
togayan | 4:7dae52cf560f | 119 | void setSystemID( const char * systemID ); |
togayan | 4:7dae52cf560f | 120 | const char * getSystemID() const; |
togayan | 4:7dae52cf560f | 121 | void setPublicID( const char * publicID ); |
togayan | 4:7dae52cf560f | 122 | const char * getPublicID() const; |
togayan | 4:7dae52cf560f | 123 | void setDTD( const char * dtd ); |
togayan | 4:7dae52cf560f | 124 | const char * getDTD() const; |
togayan | 4:7dae52cf560f | 125 | |
togayan | 4:7dae52cf560f | 126 | private: |
togayan | 4:7dae52cf560f | 127 | SP_XmlDocTypeEvent * mEvent; |
togayan | 4:7dae52cf560f | 128 | }; |
togayan | 4:7dae52cf560f | 129 | |
togayan | 4:7dae52cf560f | 130 | class SP_XmlElementNode : public SP_XmlNode { |
togayan | 4:7dae52cf560f | 131 | public: |
togayan | 4:7dae52cf560f | 132 | SP_XmlElementNode(); |
togayan | 4:7dae52cf560f | 133 | SP_XmlElementNode( SP_XmlStartTagEvent * event ); |
togayan | 4:7dae52cf560f | 134 | virtual ~SP_XmlElementNode(); |
togayan | 4:7dae52cf560f | 135 | |
togayan | 4:7dae52cf560f | 136 | void setName( const char * name ); |
togayan | 4:7dae52cf560f | 137 | const char * getName() const; |
togayan | 4:7dae52cf560f | 138 | void addChild( SP_XmlNode * node ); |
togayan | 4:7dae52cf560f | 139 | const SP_XmlNodeList * getChildren() const; |
togayan | 4:7dae52cf560f | 140 | |
togayan | 4:7dae52cf560f | 141 | void addAttr( const char * name, const char * value ); |
togayan | 4:7dae52cf560f | 142 | const char * getAttrValue( const char * name ) const; |
togayan | 4:7dae52cf560f | 143 | int getAttrCount() const; |
togayan | 4:7dae52cf560f | 144 | const char * getAttr( int index, const char ** value ) const; |
togayan | 4:7dae52cf560f | 145 | |
togayan | 4:7dae52cf560f | 146 | void removeAttr( const char * name ); |
togayan | 4:7dae52cf560f | 147 | |
togayan | 4:7dae52cf560f | 148 | protected: |
togayan | 4:7dae52cf560f | 149 | SP_XmlStartTagEvent * mEvent; |
togayan | 4:7dae52cf560f | 150 | SP_XmlNodeList * mChildren; |
togayan | 4:7dae52cf560f | 151 | }; |
togayan | 4:7dae52cf560f | 152 | |
togayan | 4:7dae52cf560f | 153 | class SP_XmlCDataNode : public SP_XmlNode { |
togayan | 4:7dae52cf560f | 154 | public: |
togayan | 4:7dae52cf560f | 155 | SP_XmlCDataNode(); |
togayan | 4:7dae52cf560f | 156 | SP_XmlCDataNode( SP_XmlCDataEvent * event ); |
togayan | 4:7dae52cf560f | 157 | virtual ~SP_XmlCDataNode(); |
togayan | 4:7dae52cf560f | 158 | |
togayan | 4:7dae52cf560f | 159 | void setText( const char * content ); |
togayan | 4:7dae52cf560f | 160 | const char * getText() const; |
togayan | 4:7dae52cf560f | 161 | |
togayan | 4:7dae52cf560f | 162 | protected: |
togayan | 4:7dae52cf560f | 163 | SP_XmlCDataEvent * mEvent; |
togayan | 4:7dae52cf560f | 164 | }; |
togayan | 4:7dae52cf560f | 165 | |
togayan | 4:7dae52cf560f | 166 | class SP_XmlCommentNode : public SP_XmlNode { |
togayan | 4:7dae52cf560f | 167 | public: |
togayan | 4:7dae52cf560f | 168 | SP_XmlCommentNode(); |
togayan | 4:7dae52cf560f | 169 | SP_XmlCommentNode( SP_XmlCommentEvent * event ); |
togayan | 4:7dae52cf560f | 170 | virtual ~SP_XmlCommentNode(); |
togayan | 4:7dae52cf560f | 171 | |
togayan | 4:7dae52cf560f | 172 | void setText( const char * comment ); |
togayan | 4:7dae52cf560f | 173 | const char * getText() const; |
togayan | 4:7dae52cf560f | 174 | |
togayan | 4:7dae52cf560f | 175 | protected: |
togayan | 4:7dae52cf560f | 176 | SP_XmlCommentEvent * mEvent; |
togayan | 4:7dae52cf560f | 177 | }; |
togayan | 4:7dae52cf560f | 178 | |
togayan | 4:7dae52cf560f | 179 | #endif |