2010-10-21 125 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