【问题标题】:How to parse special characters in XML for iPad?如何为 iPad 解析 XML 中的特殊字符?
【发布时间】:2011-08-27 04:05:43
【问题描述】:

我在解析包含一些特殊字符(如单引号、双引号('、"")等的 xml 文件时遇到问题。我正在使用NSXMLParserparser:foundCharacters:方法在我的代码中收集字符。

<synctext type = "word" >They raced to the park Arthur pointed to a sign "Whats that say" he asked Zoo said DW Easy as pie</synctext>

当我从我的 xml 文件的上面标记中解析并保存文本时,生成的字符串出现在 GDB 中,为

“\n\t\t他们跑向公园,亚瑟指着一个标志“那是什么意思”,他问动物园说 DW Easy as pie”;

观察有2个问题:

1) 字符串开头不需要的字符。

2) Whats that say 周围的双引号。

谁能帮助我如何摆脱这些不需要的字符以及如何正确读取特殊字符。

【问题讨论】:

    标签: iphone special-characters nsxmlparser xml-parsing


    【解决方案1】:

    NSString*string =[string stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"\n\t"]];

    【讨论】:

      【解决方案2】:

      解析器显然准确地返回了字符串中的内容。也就是说,XML 在一行中使用起始标记、换行符、两个制表符和字符串的开头进行编码。字符串中的引号显然在原始文本中存在(至少在这个示例中还不清楚为什么要删除它们)。

      但是,如果您希望这些字符消失,那么您需要对字符串进行后处理。您可以使用 Rams 的语句来消除换行符和制表符,并使用 stringByReplacingOccurrencesOfString:WithString: 来消除引号。

      (请注意,可以指示一些 XML 解析器返回这样的字符串,其中前导/尾随的内容被剥离,但我不确定这个。不过,引号将始终存在。)

      【讨论】:

      • 使用 stringByReplacingOccurrencesOfString:withString 方法时,我没有得到这种特殊字符的一致字符。我正在寻找任何可以遵循的编码技术。
      • NSString* newString =[originalString stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@" \n\t"]]; --新行-- newString = [newString stringByReplacingOccurrencesOfString:@"\"" withString:@""];
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多