0
目前我使用TBXML解析XML服務有一個問題。解析XML的根元素與TBXML
目前....我這樣做:
TBXML *configTBXML = [[TBXML alloc] initWithXMLData:[request responseData]];
TBXMLElement *root = configTBXML.rootXMLElement;
TBXMLElement *cddDataElement = [TBXML childElementNamed:@"data" parentElement:root];
NSMutableArray *anArray = [[NSMutableArray alloc] init];
if ([TBXML valueOfAttributeNamed:@"timezone" forElement:cddDataElement]) {
NSString *key = [TBXML valueOfAttributeNamed:@"timezone" forElement:cddDataElement];
[anArray addObject:key];
}
所以我發現..在XML文件中,確實沒有根...
<data timezone="US/Pacific-New-GMT-8" dst="1" ts="11-07-13 19:08:39" time="11-07-13 19:08" sun="DAY" weblanguage="ENGLISH" datalivequeue_start="0" datalivequeue_stop="0" datalivequeue_cnt="0" alarmsqueue_first="226" alarmsqueue_last="51" dhcpstatus="6" gateway="OK" upgrade_portal="OK" data_portal="ERROR" msgdatalive="564" upgrequests="343">
<cdd macrf="00:12:4B:00:02:8A:E0:14" sn="764040" countryselected="2" countryname="USA 208V-60Hz" idmodel="764040-3M60-1513" pout_kW="0.0000" pout_W="0.00" etot_Wh=" 0.00" etot_kWh="0.000" co2_t=" 0.00" status="WARNING"><edd sn="957188" pn="-3L03-" type="edd" macrf="00:12:4B:00:02:6A:D6:27" wy="0413" x="1" y="1" fwmicro="0000" p1_ids="0000" fwdsp="0000" p1_idi="0000" fwrf="000" Etot_Wh=" 0.00" Etot_kWh="0.000" Vout_V="0.00" Iout_A="0.000" Pout_W="0.00" Pout_kW="0.0000" Freq_Hz="0.00" Vin_V="0.00" Tdsp_degC="0.00" Tmos_degC="0.00" Pin_W="n.a" Pin_kW="n.a" Iin_A="n.a" model="n.a" eddmid="n.a" cddid="n.a" modeldesc="MICRO-0.3" invstat="START-UP" booststat="START-UP" alarmstat="0" rssi="0" rssizero="0" rssicnt="0" rssiavg="0" msgcnt="0" samples="15" ts="01-01-00 00:00:00" dspalarm="0x0000" mcualarm="0x0000" mcuwarning="0x0000" CS_crc="0x0000"/><edd sn="xxxxxx" pn="xxxxxx" type="edd" macrf="00:12:4B:00:02:6F:01:2C" wy="xxxx" x="1" y="1" fwmicro="0000" p1_ids="0000" fwdsp="0000" p1_idi="0000" fwrf="000" Etot_Wh=" 0.00" Etot_kWh="0.000" Vout_V="0.00" Iout_A="0.000" Pout_W="0.00" Pout_kW="0.0000" Freq_Hz="0.00" Vin_V="0.00" Tdsp_degC="0.00" Tmos_degC="0.00" Pin_W="n.a" Pin_kW="n.a" Iin_A="n.a" model="n.a" eddmid="n.a" cddid="n.a" modeldesc="MICRO-0.25" invstat="START-UP" booststat="START-UP" alarmstat="0" rssi="0" rssizero="0" rssicnt="0" rssiavg="0" msgcnt="0" samples="15" ts="01-01-00 00:00:00" dspalarm="0x0000" mcualarm="0x0000" mcuwarning="0x0000" CS_crc="0x0000"/><edd sn="xxxxxx" pn="xxxxxx" type="edd" macrf="00:12:4B:00:02:6F:14:5A" wy="xxxx" x="1" y="1" fwmicro="0000" p1_ids="0000" fwdsp="0000" p1_idi="0000" fwrf="000" Etot_Wh=" 0.00" Etot_kWh="0.000" Vout_V="0.00" Iout_A="0.000" Pout_W="0.00" Pout_kW="0.0000" Freq_Hz="0.00" Vin_V="0.00" Tdsp_degC="0.00" Tmos_degC="0.00" Pin_W="n.a" Pin_kW="n.a" Iin_A="n.a" model="n.a" eddmid="n.a" cddid="n.a" modeldesc="MICRO-0.25" invstat="START-UP" booststat="START-UP" alarmstat="0" rssi="0" rssizero="0" rssicnt="0" rssiavg="0" msgcnt="0" samples="15" ts="01-01-00 00:00:00" dspalarm="0x0000" mcualarm="0x0000" mcuwarning="0x0000" CS_crc="0x0000"/></cdd></data>
對不起在可怕的格式化XML,但如果你發現......該文件的標題是...好..必要對我來說,提取......
現在如果我使用:
TBXMLElement *cddDataElement = [TBXML childElementNamed:@"data" parentElement:root];
我得到一個崩潰......我明白爲什麼becasue我訪問的父元素,而子元素是不存在的...
所以我的問題是,我該如何訪問這些值/根元素的鍵?