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 Satoshi Togawa

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/

Committer:
togayan
Date:
Mon Aug 20 13:27:17 2012 +0000
Revision:
4:7dae52cf560f
1st revision

Who changed what in which revision?

UserRevisionLine numberNew 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