मैं आईओएस मंच के लिए NSXMLParser
एपीआई का उपयोग करना सीख रहा हूं और अब तक इसका उपयोग करना बहुत आसान है। हालांकि, एक छोटी सी समस्या है, हालांकि, खोजकर्ताओं की विधि में। जैसा कि मैं इसे समझता हूं, इसे foundIgnorableWhitespace
विधि को पकड़ने के लिए किसी भी सफेद जगह को नहीं लेना चाहिए, लेकिन ऐसा लगता है कि ऐसा है। यहाँ मेरी कोड है ...एनएसएक्सएमएल पार्सर खोजकर्ता विधि में इस सफेद जगह को क्यों उठा रहा है?
- (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
अपने प्रश्न को उत्तर के रूप में चिह्नित करना न भूलें :-) –