NSXMLParser为每个字符串添加额外的字符

时间:2010-06-24 12:29:59

标签: iphone nsxmlparser

我正在创建一个简单的FeedReader iPhone应用程序,其中RSS是使用NSXMLParser解析RSS。解析RSS的代码是类似于here所示的标准代码。

但是我注意到每个解析过的元素最后都有'\ n \ t \ t'个字符。 实施例

link = "http://bakery.cakephp.org/articles/view/exporting-data-to-csv-the-cakephp-way\n\t\t\t";
date = "Fri, 23 Apr 2010 10:02:55 -0500\n\t\t\t";

因此,我无法使用该链接将其提供给NSWebView,并且它具有非法字符。即使我使用像

这样的东西
NSString *storyURL = [NSString stringWithFormat:@"%@", self.selectedURL];
NSString *webURL = [storyURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

网址无效。实施例

http://bakery.cakephp.org/articles/view/creating-pdf-files-with-cakephp-and-tcpdf%0A%09%09%09

显然会出现404错误。

有没有什么办法可以在每个解析后的字符串末尾删除那些额外的字符?

感谢。

1 个答案:

答案 0 :(得分:0)

那些是control characters。在您的示例中,有一个换行符,然后是三个选项卡,可能用于缩进。要剥离它们,您可以使用NSStringNSArray中的几种方法。

//This breaks the given string apart at the control characters
//This will find all of the control characters in the string
NSArray *brokenStrings = [dirtyString componentsSeparatedByCharactersInSet:[NSCharacterSet controlCharacterSet]];
//Now join them back together
NSString *cleanString = [brokenStrings componentsJoinedByString:@""];

componentsSeparatedByCharactersInSet:遇到其中一个控制字符时,它会在数组中用空字符串表示。

要获得更多指导,我们已回答了类似的问题here,并且以更复杂的方式讨论了here这个确切的问题。