我有一个看起来像这样的XML文件
<comments>
<text>
<![CDATA[
<!--cached-Tue, 02 Nov 2010 17:50:50 +0000-->
this is on the first line
<br />
This is on the second line
]]>
</text>
<text>
<![CDATA[
<!--cached-Tue, 02 Nov 2010 17:50:50 +0000-->
this is on the first line
<br />
This is on the second line
]]>
</text>
</comments>
如何从中提取数据(忽略评论)
我目前有。
- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock
{
if(!myCDATA)
{
myCDATA = [[NSMutableData alloc] init];
}
[myCDATA appendData:CDATABlock];
}
然而,它似乎永远不会找到“]]&gt;”标签。当我突破它时,它只会调用foundCDATA一次。
答案 0 :(得分:1)
您是否有机会在下面的行中设置断点?
myCDATA = [[NSMutableData alloc] init];
只需在if(!myCDATA)测试之前添加一个NSLog(@“”)并在其上设置一个断点,我很确定你会得到两个回调。
您不应期望解析器“找到”“]]&gt;”串。这是CDATA元素的一部分。
你也可以实现这个
- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
并检查“文字”。
干杯...