使用NSXMLParser的XML属性中的特殊字符

时间:2012-01-26 21:58:43

标签: ios xml api nsxmlparser

我从第三方API获得以下内容:

<el attr="test.

another test." />

我使用NSXMLParser将文件读入我的应用程序。

但是,在委托中,属性转换为test. another test.显然我希望看到它的断行完整。

我最初认为这是一个错误但是,根据XML Spec,它正在做正确的事情:

  

处理空格字符(#x20,#xD,#xA,#x9)   将#x20附加到标准化值

See section 3.3.3.

我有什么选择?请注意,它是第三方API,因此我无法更改它,即使它是错误的。

1 个答案:

答案 0 :(得分:3)

NSData *xmlData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"url://"]];
NSMutableString *myXmlStr = [[NSMutableString alloc] initWithData:xmlData encoding:NSUTF8StringEncoding];
NSRange range = [myXmlStr rangeOfString:@"\n"];
[myXmlStr replaceCharactersInRange:range withString:@"[:newline:]"];
NSData *newXmlData = [myXmlStr dataUsingEncoding:NSUTF8StringEncoding];

只要你愿意,只需用新行字符替换[:newline:]:)