【发布时间】:2011-05-27 13:33:20
【问题描述】:
我想从在线 XML 中解析,其中 XML 如下所示:
<menu maincategory="![CDATA[Erhverv]]" subcategory="![CDATA[Erhvervsregister]]" category="![CDATA[Akupunktur]]"/>
在函数解析器 didStartElement 中我使用如下:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
if ([elementName isEqualToString:@"menu"]) {
NSString *maincategory = [attributeDict objectForKey:@"maincategory"];
}
}
使用 %@ 的输出如下所示:
attributeDict:{
category = "![CDATA[Advokater]]";
maincategory = "![CDATA[Erhverv]]";
subcategory = "![CDATA[Erhvervsregister]]";
}
2011-05-27 19:20:42.663 XML[62494:840b] maincategory using %s: `ãâå
2011-05-27 19:20:42.663 XML[62494:840b] maincategory using %@: ![CDATA[Erhverv]]
但我需要没有 ![CDATA] 标签的输出
谁能帮我解决这个问题? 提前致谢
【问题讨论】:
-
感谢您的建议,但这是对节点价值的建议,我需要节点![CDATA] 字符串中的属性
-
虽然不是直接的解决方案;简单地将“![CDATA [”和“]]”从这些字符串中删除是非常容易的。
-
不用喊了。你试过 NSString *maincategory = [[attributeDict objectForKey:@"maincategory"] stringByReplacingOccurrencesOfString:@"![CDATA[" withString:@""];您还需要替换尾随的“]”。
-
嗨 Rayfleck,这行得通,但问题是它使用 %@ 在日志中正确打印,但不使用 %s。使用 %s 显示 `õâ»
标签: ios objective-c iphone cocoa cocoa-touch