使用英镑符号登录XML Feed,由iPhone读取

Jon*_*ley 5 xml iphone character-encoding

我创建了一个基于Web的UTF-8 XML feed,用于iPhone应用程序.

在Web浏览器中查看时,如果Feed包含英镑符号,则会出现令人讨厌的XML错误:XML解析错误:未定义的实体

但是实际文件似乎是可读的.

1. iPhone NSParser是否能够读取该文件或由于此字符而失败?

2.是否可以对XML的井号进行编码?

jas*_*sso 13

如果Feed包含英镑符号,我会收到一个令人讨厌的XML错误:XML解析错误:未定义的实体

您的Feed可能使用实体£作为磅字符.£是一个HTML实体,如果没有使用与XML文档关联(或嵌入)的DTD声明它们,则无法使用这些实体.如果未定义实体,则XML解析器将报告已找到未知实体.

既然你说你的feed编码为UTF-8,你可以直接使用井字符 - 不需要实体.像LukeH建议的那样,其他解决方案是使用字符引用£,它将被XML解析器读作磅字符.


Luk*_*keH 9

你可以使用£实体.


Jon*_*ley 5

我的最终解决方案似乎适用于所有情况,即在输入时替换所有特殊字符.

  public function xmlEntities($text)
  {
    $search = array('&','<','>','"','\'', chr(163), chr(128), chr(165));
    $replace = array('&amp;', '&lt;', '&gt;', '&quot;', '&apos;', '&#163;', '&#8364;', '&#165;');

    $text = str_replace($search, $replace, $text);

    return $text;
  }
Run Code Online (Sandbox Code Playgroud)