【发布时间】:2011-06-03 21:14:20
【问题描述】:
只是一个小问题,但我注意到如果我的 xml 的第一行有 encoding="Latin-1" 那么 php simplexml 和 dom 将抛出错误并拒绝导入。我做了一个解决方法,我将 xml 作为字符串导入并将正则表达式 encoding="Latin-1" 导入到 encoding="ISO-8859-1" 中,然后再加载到不会引发错误的对象中,但我想知道是否有更优雅的解决方案?最好是 dom 对象内部的东西,这样我就可以从文件名中导入。
【问题讨论】:
-
我相信您的重写解决方法已经是合适的解决方案。字符集名称没有“Latin-1”别名。 iana.org/assignments/character-sets
-
我正在处理一个非常大的数据集,它的格式并不总是完美,所以如果有办法抑制无法识别的编码错误和无论如何加载文件会很棒。我还没有发现如何/如果可能的话。
-
libxml 的 PHP 接口只提供了
LIBXML_NOWARNING,这里没有帮助。即使有抑制实际错误的选项(我对此表示怀疑),它也不会在 PHP 方法中公开。 -
哦,好吧,谢谢,至少我可以停止用头撞墙,开始思考一些有用的事情。
标签: php xml xml-parsing