所以我知道如何解析一些XML結構,但我目前正試圖解析這個特定的xml結構,這與我習慣的有點不同。如何爲ios開發解析xml
通常我會解析像
<xml>
<data>
<name>Forrest</name>
<age>25</name>
<username>forrestgrant</username>
</data>
</xml>
但現在我有像這樣一些XML工作..
<xml>
<data name="Forrest" age="25" username="forrestgrant" />
<other value="6" />
</xml>
我該如何訪問這些變量的時候,他們正在構建這樣? 這就是我通常會接近這個任務的過程,這個任務是搜索標題標籤並從每個標籤獲取數據的。但是我現在試圖弄清楚如何解析這種其他樣式的xml。
- (void)startTheParsingProcess:(NSData *)parserData
{
[myDataArray release]; // clears array for next time it is used.
myDataArray = [[NSMutableArray alloc] init]; //initalizes the array
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:parserData]; //incoming parserDatapassed to NSXMLParser delegate which starts parsing process
[parser setDelegate:self];
[parser parse]; //Starts the event-driven parsing operation.
[parser release];
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqual:@"item"]) {
// NSLog(@"Found title!");
itemString = [[NSMutableString alloc] init];
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
[itemString appendString:string];
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if ([elementName isEqual:@"item"]) {
//NSLog(@"ended title: %@", itemString);
[myDataArray addObject:itemString]; //this is where i pass the values over to my array.
[itemString release];
itemString = nil;
}
}
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
// Passes myDataArray to the method that will sort and display the array into a uitableview.
[self startSortingTheArray:myDataArray];
}
任何幫助將不勝感激..
沒關係..酷我得到的..我可能只是去NSDictionaries讀了現在..還沒有真正使用他們在到目前爲止。 –
字典只是一個集合鍵和值。您應該爲每個屬性設置一個密鑰,併爲該密鑰的每個值設置一個值。玩得開心:) – bryanmac
是的我有他們的一般想法,但需要做一些體面的閱讀他們之前,我嘗試任何瘋狂的! :)歡呼的幫助!非常感激 –