【发布时间】:2012-03-06 14:29:07
【问题描述】:
我有一个从 XML 文件中检索到的 XML 字符串。我无法使用simplexml_load_file() 直接访问该文件。原因是我必须通过 Amazon S3 getObject() 来获得它。当我echo 字符串时,我可以看到输出是一个真正的 XML 文件。但是当我尝试使用下面的代码将它加载到 XML 对象时,它不起作用。变量 $s3Data 完全包含给定链接中的 XML 内容。
$xml = simplexml_load_string($s3Data);
我需要你的帮助来解决这个问题。我得到的 XML 字符串在这里可用。
http://mediatheques-aphp.bibliomedias.net/12.xml
编辑
我创建了 XML 字符串并进行了测试。现在我收到以下错误。我该如何解决这些问题。
警告:simplexml_load_string() [function.simplexml-load-string]: 实体:第 12 行:解析器错误:输入不正确的 UTF-8,指示 编码!字节:C:\Program 中的 0xEF 0x76 0x65 0x3C Files\Zend\Apache2\htdocs\voxmedia\application\modules\import\controllers\NaiveController.php 在第 1458 行
警告:simplexml_load_string() [function.simplexml-load-string]: 2009 天真 C:\Program Files\Zend\Apache2\htdocs\voxmedia\application\modules\import\controllers\NaiveController.php 在第 1458 行
警告:simplexml_load_string() [function.simplexml-load-string]: ^ 在 C:\程序 Files\Zend\Apache2\htdocs\voxmedia\application\modules\import\controllers\NaiveController.php 在第 1458 行
好的,现在我觉得问题出在字符串编码之类的东西上。有没有办法解决这个问题?
谢谢。
【问题讨论】:
-
它“不起作用”是永远不够的信息。至少提供错误信息。
-
嗨。没有错误信息。我的代码与其他 XML 字符串一起使用。请不要考虑文件。试想你有一个包含给定 URL 内容的 php 字符串变量。
$s3Data是一个字符串变量,它包含给定 XML 文件中的内容。不要考虑 getObject() 等... -
我用最新的更新修改了我的问题。请检查。
-
看起来可能是重复的。但是他们的答案 `utf8_encode() 对我不起作用。我已经用我修复它的方式提出了自己的答案。无论如何,感谢 Gordon 的帮助。