使用 NSXMLParser 根据属性解析 XML
Posted
技术标签:
【中文标题】使用 NSXMLParser 根据属性解析 XML【英文标题】:parsing XML according to attributes with NSXMLParser 【发布时间】:2014-12-05 10:16:25 【问题描述】:我想根据他们的属性解析xml并保存为字典。
xml 输出看起来是这样的
<Tracking event="firstElement">
http://www.firstElement.com
</Tracking>
我现在正在做的是:
获取跟踪和保存 URL 的标签名称。但在 final 中,哪个 URL 链接的事件方法是未知的。
我必须将它保存在 NSDictionary 上并这样称呼它:
[字典 objectForKey:@"firstElement"];
-> (NSURL *) http://www.firstElement.com
我该如何实现? 最好的问候..
【问题讨论】:
【参考方案1】:您可以在 NSXMLParserDelegate 中获取事件:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
// reset temp data
[self.mutableData setString:@""];
if([elementName isEqualToString:@"Tracking"])
NSString *event = [attributeDict objectForKey:@"event"];
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
[self.mutableData appendString:string];
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
if([elementName isEqualToString:@"Tracking"])
NSString *URL = [NSString stringWithFormat:@"%@", self.mutableData];
解析以获取 URL 并使用 @event:URL
设置字典
mutableData 是属性 MutableString
@property (nonatomic) NSMutableString *mutableData;
希望对你有帮助:)
【讨论】:
所以当我设置事件时。我怎样才能到达网址? 真的没有得到 NSString *event 部分。我们将在哪里使用它? 该代码仅向您展示如何获取您想要的值。在您的情况下,您只需将事件保存在 ivar 中,并在获取 URL 时在字典中添加一个条目。 小心,上面的代码不关心 XML 中的换行符。您可能需要为 foundCharacters: 方法中的内容添加检查 最后我用 NSDictionary 处理了。谢谢你:))以上是关于使用 NSXMLParser 根据属性解析 XML的主要内容,如果未能解决你的问题,请参考以下文章
iOS - OC - XML 解析 - NSXMLParser