2011-10-20 157 views
0

我是iPhone开发新手,这个问题可能很简单,但我不知道答案。解析具有不同属性但具有不同属性的元素

问题:我有这样的XML代码:

<im:image height="53"> 
    picture52x52.jpg 
</im:image> 

<im:image height="75"> 
    picture75x75.jpg 
</im:image> 

<im:image height="100"> 
    picture100x100.jpg 
</im:image> 

我只需要解析的第二个元素(第二要素,第二张图片),但我不知道怎么办。我总是解析三个元素,但我只需要一个。

回答

2
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
{ 
     NSString *imageSize = [NSString stringWithString:[attributeDict valueForKey:@"height"]]; 
     if([imageSize isEqualToString:@"75"]) 
     { 
      // parse something like this 
     } 
} 
0

让我建议你多了一个解决方案,你可以在CDATA附上图片名称,即。生成XML这样的 -

<im:image height="53"> 
    <![CDATA[picture52x52.jpg]]> 
</im:image> 

<im:image height="75"> 
    <![CDATA[picture75x75.jpg]]> 
</im:image> 

<im:image height="100"> 
    <![CDATA[picture100x100.jpg]]> 
</im:image> 

并且简单地使用该委托方法:

- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock

如果是CDATA块内包围的唯一元件。

希望你能理解;)

相关问题