‘xmlParseEntityRef:在将XML加载到php文件时没有名称的’警告

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (73)

我正在阅读一个XML在PHP使用simplexml_load_file。但是,当试图加载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解析器返回错误“xmlParseEntityRef:noname” 原因: XML文本中存在一个“&”符号(&符号)。一些文字和一些更多的文字 解:

  • 解决方案1:删除&符号。
  • 解决方案2:对&符号进行编码(即用“&amp;”替换“&”字符)。记得在阅读XML文本时解码。
  • 解决方案3:使用CDATA部分(CDATA部分内的文本将被解析器忽略)。<![CDATA [一些文本和一些更多的文本]]>

注意:如果处理不当,'&''<''>'将会出现问题。

用户回答回答于

XML很可能是无效的。

问题可能是“&”

$text=preg_replace('/&(?!#?[a-z0-9]+;)/', '&amp;', $text);

将“&”替换为HTML代码版本...试一试。

扫码关注云+社区

领取腾讯云代金券