我正在使用simplexml_load_file
阅读php中的xml。但是,当尝试加载XML时,它会显示一个警告列表
Warning: simplexml_load_file() [function.simplexml-load-file]: <project orderno="6" campaign_name="International Relief & Development" project in /home/bluecard1/public_html/test.php on line 3
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/bluecard1/public_html/test.php on line 3
Warning: simplexml_load_file() [function.simplexml-load-file]: http://..../index.php/site/projects/:15: parser error : xmlParseEntityRef: no name in /home/bluecard1/public_html/test.php on line 3
Warning: simplexml_load_file() [function.simplexml-load-file]: ional Relief & Development" project_id="313" client_name="International Relief & in /home/bluecard1/public_html/test.php on line 3
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /home/bluecard1/public_html/test.php on line 3
Warning: simplexml_load_file() [function.simplexml-load-file]: http://..../index.php/site/projects/:15: parser error : xmlParseEntityRef: no name in /home/bluecard1/public_html/test.php on line 3
字符串
如何纠正以删除这些警告?
- (XML是从url
http://..../index.php/site/projects
生成的&加载到test.php中的变量中。I don't have write priveleges to index.php)*
9条答案
按热度按时间1tuwyuhd1#
XML很可能无效。问题可能出在“&”
字符串
我将删除“&”,并将其替换为HTML代码版本...给予试试看吧。
yftpprvb2#
找到此here ...
**问题:**XML解析器返回错误“xmlParseEntityRef:无名氏
**原因:**在XML文本中的某个地方有一个“&”(与字符),例如。一些文本&更多文本
解决方案:
&
替换&
字符)。在阅读XML文本时记得解码。注意:'&' '<' '>'如果处理不正确,都会给予问题。
fwzugrvs3#
首先尝试使用以下函数清理HTML:
字符串
特殊字符通常在HTML中以不同的方式表示,这可能会让编译器感到困惑。
&
变成&
。ckocjqey4#
我使用的是一个组合版本:
字符串
hfsqlsce5#
问题
simplexml_load_file
在尝试从URL加载XML文件时抛出解析错误parser error : xmlParseEntityRef
。原因
&
值,而不是&
**。很有可能还有其他的错误在这个时候还不明显。“我们无法控制的事情"
simplexml_load_file
函数,但是看起来我们对如何创建XML没有任何控制。simplexml_load_file
处理无效的XML文件。除了修复XML文件本身之外,它没有给我们留下太多选择。可能的解决方案
将无效XML转换为有效XML。它可以使用**
PHP tidy extension
**来完成。有关详细说明,请参阅http://php.net/manual/en/book.tidy.php一旦您确定该扩展存在或已安装,请执行以下操作。
字符串
注意事项
开发人员应该尝试将无效的XML与有效的XML(由trigy生成)进行比较,以查看使用trigy后是否有不良的副作用。Tidy在正确地做这件事上做得极其出色,但从视觉上看,并100%肯定,这从来没有坏处。在我们的例子中,它应该像比较$xml和$tidy一样简单。
thigvfpy6#
XML无效。
字符串
根据W3C,CDATA应该包含所有特殊的XML字符
lhcgjxsq7#
这实际上是由于字符在数据上乱搞。使用
htmlentities($yourText)
对我来说很有效(我在xml文档中有html代码)。请参阅http://uk3.php.net/htmlentities。5us2dqdw8#
这解决了我的问题:
字符串
vohkndzv9#
如果你在opencart遇到这个问题,请尝试编辑
catalog/controller/extension/feed/google_sitemap.php更多信息和如何做到这一点,请参考此:xmlparseentityref-no-name-error