換行符我試圖解析使用的NSXMLParser XML,但由於一些我在XML中包含換行符()我越來越不準確的分析。例如「一個真正的領導者不是一個<br>搜索器的共識<br>但是,一個共識模塑商」被解析爲「一個共識模塑商」不僅
標籤搞砸了,但也似乎在後面的逗號把它搞亂,猜測它是因爲直接在br標籤旁邊沒有空格。任何人都有如何解決這個問題的經驗?許多人Stackoverflow似乎有同樣的問題,但我一直沒能找到一個iOS的解決方案。不準確的XML解析,由於在內容
在XML中BR標籤打印出來是這樣的:
<br>
這是我解析
<entry>
<title>Quote</title>
<content>A genuine leader is not a<br>
searcher for consensus<br>
but, a molder of consensus</content>
</entry>
的XML這是我的XML解析代碼
- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
if ([elementname isEqualToString:@"entry"])
{
currentQuote = [[SQuote alloc] init];
}
}
- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if ([elementname isEqualToString:@"content"]){
currentQuote.content = currentNodeContent;
}
if ([elementname isEqualToString:@"entry"])
{
[self.popularEntries addObject:currentQuote];
currentQuote = nil;
currentNodeContent = nil;
}
}
編輯:
我試圖改變我的charactersFound代碼如下:
- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if (currentNodeContent == nil)
currentNodeContent = [[NSMutableString alloc] initWithCapacity: 20];
[currentNodeContent appendString: [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];
}
但我仍然得到一個錯誤,指出「試圖改變一個不可改變的對象與appendString:」即使currentNodeContent是類型的NSMutableString
This [related question](http://stackoverflow.com/questions/14113499/xml-parse-not-showing-elements-with-symbol-inside?rq= 1)可能值得一看。 –
謝謝@DonRoby,但我仍然無法弄清楚。我改變foundCharacters代碼如果(currentNodeContent ==無) currentNodeContent = [[ALLOC的NSMutableString] initWithCapacity:20]; 否則{ [currentNodeContent appendString:[字符串stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]]; }但是我得到一個錯誤說「試圖改變一個不可改變的對象與appendString:」你知道如何解決這個問題? – bachkoi32
如果您更新問題中的代碼而不是嘗試將代碼置於評論中,那將會更好。我知道xml解析非常好,所以我能夠看到這是相關的,但我不知道這種語言,所以你可能從兩個人都得到更多的幫助。 –