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/spxmlhandle.cpp@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 2008 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 | #include <stdio.h> |
togayan | 4:7dae52cf560f | 7 | #include <string.h> |
togayan | 4:7dae52cf560f | 8 | |
togayan | 4:7dae52cf560f | 9 | #include "spxmlhandle.hpp" |
togayan | 4:7dae52cf560f | 10 | #include "spxmlnode.hpp" |
togayan | 4:7dae52cf560f | 11 | |
togayan | 4:7dae52cf560f | 12 | |
togayan | 4:7dae52cf560f | 13 | SP_XmlHandle :: SP_XmlHandle( SP_XmlNode * node ) |
togayan | 4:7dae52cf560f | 14 | { |
togayan | 4:7dae52cf560f | 15 | mNode = node; |
togayan | 4:7dae52cf560f | 16 | } |
togayan | 4:7dae52cf560f | 17 | |
togayan | 4:7dae52cf560f | 18 | SP_XmlHandle :: SP_XmlHandle( const SP_XmlHandle & ref ) |
togayan | 4:7dae52cf560f | 19 | { |
togayan | 4:7dae52cf560f | 20 | mNode = ref.mNode; |
togayan | 4:7dae52cf560f | 21 | } |
togayan | 4:7dae52cf560f | 22 | |
togayan | 4:7dae52cf560f | 23 | SP_XmlHandle & SP_XmlHandle :: operator=( const SP_XmlHandle & ref ) |
togayan | 4:7dae52cf560f | 24 | { |
togayan | 4:7dae52cf560f | 25 | mNode = ref.mNode; |
togayan | 4:7dae52cf560f | 26 | return *this; |
togayan | 4:7dae52cf560f | 27 | } |
togayan | 4:7dae52cf560f | 28 | |
togayan | 4:7dae52cf560f | 29 | SP_XmlHandle :: ~SP_XmlHandle() |
togayan | 4:7dae52cf560f | 30 | { |
togayan | 4:7dae52cf560f | 31 | } |
togayan | 4:7dae52cf560f | 32 | |
togayan | 4:7dae52cf560f | 33 | SP_XmlHandle SP_XmlHandle :: getChild( const char * name, int index ) const |
togayan | 4:7dae52cf560f | 34 | { |
togayan | 4:7dae52cf560f | 35 | SP_XmlNode * ret = NULL; |
togayan | 4:7dae52cf560f | 36 | |
togayan | 4:7dae52cf560f | 37 | if( NULL != mNode ) { |
togayan | 4:7dae52cf560f | 38 | if( SP_XmlNode::eELEMENT == mNode->getType() ) { |
togayan | 4:7dae52cf560f | 39 | SP_XmlElementNode * element = (SP_XmlElementNode*)mNode; |
togayan | 4:7dae52cf560f | 40 | const SP_XmlNodeList * children = element->getChildren(); |
togayan | 4:7dae52cf560f | 41 | |
togayan | 4:7dae52cf560f | 42 | int tmpIndex = index; |
togayan | 4:7dae52cf560f | 43 | for( int i = 0; i < children->getLength(); i++ ) { |
togayan | 4:7dae52cf560f | 44 | if( SP_XmlNode::eELEMENT == children->get(i)->getType() ) { |
togayan | 4:7dae52cf560f | 45 | SP_XmlElementNode * iter = (SP_XmlElementNode*)children->get(i); |
togayan | 4:7dae52cf560f | 46 | if( 0 == strcmp( name, iter->getName() ) ) { |
togayan | 4:7dae52cf560f | 47 | if( 0 == tmpIndex ) { |
togayan | 4:7dae52cf560f | 48 | ret = iter; |
togayan | 4:7dae52cf560f | 49 | break; |
togayan | 4:7dae52cf560f | 50 | } |
togayan | 4:7dae52cf560f | 51 | tmpIndex--; |
togayan | 4:7dae52cf560f | 52 | } |
togayan | 4:7dae52cf560f | 53 | } |
togayan | 4:7dae52cf560f | 54 | } |
togayan | 4:7dae52cf560f | 55 | } |
togayan | 4:7dae52cf560f | 56 | } |
togayan | 4:7dae52cf560f | 57 | |
togayan | 4:7dae52cf560f | 58 | return SP_XmlHandle( ret ); |
togayan | 4:7dae52cf560f | 59 | } |
togayan | 4:7dae52cf560f | 60 | |
togayan | 4:7dae52cf560f | 61 | SP_XmlHandle SP_XmlHandle :: getChild( int index ) const |
togayan | 4:7dae52cf560f | 62 | { |
togayan | 4:7dae52cf560f | 63 | SP_XmlNode * ret = NULL; |
togayan | 4:7dae52cf560f | 64 | |
togayan | 4:7dae52cf560f | 65 | if( NULL != mNode ) { |
togayan | 4:7dae52cf560f | 66 | if( SP_XmlNode::eELEMENT == mNode->getType() ) { |
togayan | 4:7dae52cf560f | 67 | SP_XmlElementNode * element = (SP_XmlElementNode*)mNode; |
togayan | 4:7dae52cf560f | 68 | ret = (SP_XmlNode*)element->getChildren()->get( index ); |
togayan | 4:7dae52cf560f | 69 | } |
togayan | 4:7dae52cf560f | 70 | } |
togayan | 4:7dae52cf560f | 71 | |
togayan | 4:7dae52cf560f | 72 | return SP_XmlHandle( ret ); |
togayan | 4:7dae52cf560f | 73 | } |
togayan | 4:7dae52cf560f | 74 | |
togayan | 4:7dae52cf560f | 75 | SP_XmlHandle SP_XmlHandle :: getElement( int index ) const |
togayan | 4:7dae52cf560f | 76 | { |
togayan | 4:7dae52cf560f | 77 | SP_XmlNode * ret = NULL; |
togayan | 4:7dae52cf560f | 78 | |
togayan | 4:7dae52cf560f | 79 | if( NULL != mNode ) { |
togayan | 4:7dae52cf560f | 80 | if( SP_XmlNode::eELEMENT == mNode->getType() ) { |
togayan | 4:7dae52cf560f | 81 | SP_XmlElementNode * element = (SP_XmlElementNode*)mNode; |
togayan | 4:7dae52cf560f | 82 | const SP_XmlNodeList * children = element->getChildren(); |
togayan | 4:7dae52cf560f | 83 | |
togayan | 4:7dae52cf560f | 84 | int tmpIndex = index; |
togayan | 4:7dae52cf560f | 85 | for( int i = 0; i < children->getLength(); i++ ) { |
togayan | 4:7dae52cf560f | 86 | if( SP_XmlNode::eELEMENT == children->get(i)->getType() ) { |
togayan | 4:7dae52cf560f | 87 | SP_XmlElementNode * iter = (SP_XmlElementNode*)children->get(i); |
togayan | 4:7dae52cf560f | 88 | |
togayan | 4:7dae52cf560f | 89 | if( 0 == tmpIndex ) { |
togayan | 4:7dae52cf560f | 90 | ret = iter; |
togayan | 4:7dae52cf560f | 91 | break; |
togayan | 4:7dae52cf560f | 92 | } |
togayan | 4:7dae52cf560f | 93 | tmpIndex--; |
togayan | 4:7dae52cf560f | 94 | } |
togayan | 4:7dae52cf560f | 95 | } |
togayan | 4:7dae52cf560f | 96 | } |
togayan | 4:7dae52cf560f | 97 | } |
togayan | 4:7dae52cf560f | 98 | |
togayan | 4:7dae52cf560f | 99 | return SP_XmlHandle( ret ); |
togayan | 4:7dae52cf560f | 100 | } |
togayan | 4:7dae52cf560f | 101 | |
togayan | 4:7dae52cf560f | 102 | SP_XmlNode * SP_XmlHandle :: toNode() |
togayan | 4:7dae52cf560f | 103 | { |
togayan | 4:7dae52cf560f | 104 | return mNode; |
togayan | 4:7dae52cf560f | 105 | } |
togayan | 4:7dae52cf560f | 106 | |
togayan | 4:7dae52cf560f | 107 | SP_XmlElementNode * SP_XmlHandle :: toElement() |
togayan | 4:7dae52cf560f | 108 | { |
togayan | 4:7dae52cf560f | 109 | if( NULL != mNode && SP_XmlNode::eELEMENT == mNode->getType() ) { |
togayan | 4:7dae52cf560f | 110 | return (SP_XmlElementNode*)mNode; |
togayan | 4:7dae52cf560f | 111 | } |
togayan | 4:7dae52cf560f | 112 | |
togayan | 4:7dae52cf560f | 113 | return NULL; |
togayan | 4:7dae52cf560f | 114 | } |
togayan | 4:7dae52cf560f | 115 | |
togayan | 4:7dae52cf560f | 116 | SP_XmlCDataNode * SP_XmlHandle :: toCData() |
togayan | 4:7dae52cf560f | 117 | { |
togayan | 4:7dae52cf560f | 118 | if( NULL != mNode && SP_XmlNode::eCDATA == mNode->getType() ) { |
togayan | 4:7dae52cf560f | 119 | return (SP_XmlCDataNode*)mNode; |
togayan | 4:7dae52cf560f | 120 | } |
togayan | 4:7dae52cf560f | 121 | |
togayan | 4:7dae52cf560f | 122 | return NULL; |
togayan | 4:7dae52cf560f | 123 | } |