我正在學習如何在iOS平臺上使用NSXMLParser
API,並且到目前爲止它非常易於使用。然而,我在findCharacters方法中遇到了一個小問題。據我瞭解,它不應該拿起任何空格,因爲foundIgnorableWhitespace
方法應該可以捕捉到,但它看起來像。這是我的代碼...爲什麼NSXMLParser在foundCharacters方法中選取了這個空格?
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
//We're at the start of a new data feed
if([elementName isEqualToString:@"data"])
{
if(listOfTimes != nil)
[listOfTimes release];
listOfTimes = [[NSMutableArray alloc] init];
}
else if ([elementName isEqualToString:@"start-valid-time"]) {
currentElementType = kXMLElementTime;
return;
}
else {
currentElementType = kXMLElementOther;
}
//---------------------------------------------------------------------
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if(currentElementType == kXMLElementTime)
{
//We don't want anymore than three times
if ([listOfTimes count] >= 3)
return;
[listOfTimes addObject:string];
}
}
它基本上將三個「時間」元素存儲在一個數組中。但是,問題似乎是以換行符的形式提取空白。下面是在控制檯陣列的打印輸出...
Printing description of listOfTimes:
(
"2010-08-21T22:00:00-05:00",
"\n ",
"2010-08-22T01:00:00-05:00"
)
,這裏是我的處理XML數據的片段......
<time-layout time-coordinate="local" summarization="none">
<layout-key>k-p3h-n40-1</layout-key>
<start-valid-time>2010-08-21T22:00:00-05:00</start-valid-time>
<start-valid-time>2010-08-22T01:00:00-05:00</start-valid-time>
<start-valid-time>2010-08-22T04:00:00-05:00</start-valid-time>
<start-valid-time>2010-08-22T07:00:00-05:00</start-valid-time>
<start-valid-time>2010-08-22T10:00:00-05:00</start-valid-time>
.
.
.
我誤解是如何工作的?
在此先感謝您的幫助!
是的,這似乎已修復它。謝謝! – BeachRunnerFred 2010-08-22 03:14:17
不要忘記將你的問題標記爲已回答:-) – 2010-08-22 03:24:56