CData不被NSXmlparserparsing

我收到来自服务的xmlforms的响应,我使用nsxmlparser进行parsing。 在一个实例中,我收到了一个xml,其中两个标签中的内容是相同的(重复项如下面的xml)

收到的Xml:

<UserGeneratedContentItem> <link rel="details" uri="http://api.test.no/test.Ugc/vivo/usergeneratedcontentitem/16046" /> <Data><![CDATA[<Type>Note</Type><Description>**6000 characters**</Description><Page>6</Page><ChapterNumber>1</ChapterNumber><ChapterTitle>Etikk og filosofi</ChapterTitle><Uri>http://api.test.no/test.Ugc/vivo/usergeneratedcontentitem/6</Uri><Data><StickyNotes><StickyNote name="icon_2" X="215.8" Y="352.7" note="**6000 characters**" dateTime="null" popupX="940" popupY="119" popupWidth="300" popupHeight="180" formatedDate ="2012-12-28-18-20-47" iconImage="1003"/></StickyNotes></Data>]]></Data> </UserGeneratedContentItem> <UserGeneratedContentItem> <link rel="details" uri="http://api.test.no/test.Ugc/vivo/usergeneratedcontentitem/16046" /> <Data><![CDATA[<Type>Note</Type><Description>**6000 characters**</Description><Page>6</Page><ChapterNumber>1</ChapterNumber><ChapterTitle>Etikk og filosofi</ChapterTitle><Uri>http://api.test.no/test.Ugc/vivo/usergeneratedcontentitem/6</Uri><Data><StickyNotes><StickyNote name="icon_2" X="215.8" Y="352.7" note="**6000 characters**" dateTime="null" popupX="940" popupY="119" popupWidth="300" popupHeight="180" formatedDate ="2012-12-28-18-20-47" iconImage="1003"/></StickyNotes></Data>]]></Data> </UserGeneratedContentItem> 

6000个字符包括将被编码的字母,算术和一般标点符号。

概率:

在 – (void)分析器中:(NSXMLParser *)parsing器foundCDATA:(NSData *)在两种情况下(两个标签), CDATABlockvariables中的CDATABlock方法内容不相同。在一个实例中,它给了我所有的6000个字符,给我只有less数可能是300字左右。文本(6000字)是相同的两种情况下,我确认。

可能是什么原因? 有人能帮助我,可能是像我这样早些时候遇到过这样的问题的人。

Tnx提前。Plz让我知道,如果有什么不清楚或不明白。

那是什么cdata是 – 它不应该被parsing

CDATA – (未parsing)字符数据

src: http : //www.w3schools.com/xml/xml_cdata.asp

PCDATA应该被parsing


你必须保存NSData块(可能被调用N次,所以你必须连接这些东西),并在你的情况下,然后parsing结果作为单独的XML

只需与其他NSXMLParser函数一起调用以下函数。 然后它将开始照顾CDATA块。

 -(void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock { NSString *someString = [[NSString alloc] initWithData:CDATABlock encoding:NSUTF8StringEncoding]; } 

你可以NSLog someString,它会显示你的CDATA块的内容。

Interesting Posts