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 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 }