2010-10-21 126 views
0

HI,好,我不知道如何才能解析XML如果和其他條件寫。 這就是我返回的XML如何看起來像這樣。XML解析condtions

<?xml version="1.0"?> 
<a><a1>A</a1></a> 
<b><b1>B</b1></b> 
<c><c1>C</c1></c> 
<d><d1>D</d1></d> 
<e><e1>E</e1></e> 
<f><f1>F</f1></f> 
<g><g1>G</g1></g> 

我試過各種條件,但我無法正確導航每個節點。

我應該怎麼寫的if/else條件

"-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *) namespaceURI qualifiedName:(NSString *)qName 
    attributes: (NSDictionary *)attributeDict 
{ 
//if and else condition here 

if([elementName isEqualToString:@"a"]) { 
} 
else if([elementName isEqualToString:@"b"]) { 

} 
………… 
}" 

和 「 - (無效)解析器:(的NSXMLParser *)解析器foundCharacters:(的NSString *)字符串 {}」

最後在這裏

"-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
{ 
//if else condition here 
if([elementName isEqualToString:@"a"]) { 
} 
else if([elementName isEqualToString:@"b"]) { 

} 

…… 
} 
" 

我需要從XML將返回的值一樣,A,B,C來的NSString進一步programming..but我甚至不能夠解析它。

感謝 建議總是讚賞

+1

是,實際的XML? x1標籤應該在x之前終止。 – Anna 2010-10-21 13:39:45

+0

+1 @abitobvious。你的if/elses沒有錯,就像你應該做的那樣。 – 2010-10-21 13:43:59

+0

感謝所有的回覆..我編輯我的演示xml上面,..我只需要獲取值A,B,C並將它傳遞給一些字符串。 – iscavengers 2010-10-21 15:27:05

回答

1

與往常一樣,the documentationNSXMLParser非常出色。你可能想要做的是實現委託方法parser:foundCharacters:和積累你的節點內的文本(即與NSMutableString)。如您所知,didStartElement:didEndElement:會告訴您何時進入和退出元素。從那裏開始,只需將文本存儲在合適的數據結構中即可進行進一步處理。

+0

感謝warrenm,我在我的代碼中使用了同樣的東西....我只是對我的情況中的if/else條件感到困惑。我不能夠正確地通過XML的每個節點導航,u能PLZ讓我KNW,我應該怎麼寫的if/else到naviagte通過每個node.thanks – iscavengers 2010-10-22 04:51:52

+0

我不知道你的意思,但XML文檔是自然代表作爲樹結構。您可以像堆棧一樣使用NSMutableArray來跟蹤當前在樹中的位置(「a」 - >「a1」 - >文本節點)。這是你的意思是「導航」? – warrenm 2010-10-22 15:55:20