PHP:SimpleXML警告解析器错误:AttValue:";或';预期

PHP:SimpleXML警告解析器错误:AttValue:";或';预期,php,xml,simplexml,Php,Xml,Simplexml,当我试图用PHP函数simplexml_load_file()读取XML文档时,我遇到了一个问题,这就是我收到的警告 Warning: simplexml_load_file(): URL:81: parser error : AttValue: " or ' expected in URL on line 15 Warning: simplexml_load_file(): <img src=elite.png><br> in URL on line 15 Warnin

当我试图用PHP函数simplexml_load_file()读取XML文档时,我遇到了一个问题,这就是我收到的警告

Warning: simplexml_load_file(): URL:81: parser error : AttValue: " or ' expected in URL on line 15
Warning: simplexml_load_file(): <img src=elite.png><br> in URL on line 15
Warning: simplexml_load_file(): ^ in URL on line 15
Warning: simplexml_load_file(): URL:81: parser error : attributes construct error in URL on line 15
Warning: simplexml_load_file(): <img src=elite.png><br> in URL line 15
Warning: simplexml_load_file(): ^ in URL on line 15
Warning: simplexml_load_file(): URL:81: parser error : Couldn't find end of Start Tag img >line 81 in URL on line 15
Warning: simplexml_load_file(): <img src=elite.png><br> in URL on line 15
Warning: simplexml_load_file(): ^ in URL on line 15
Warning: simplexml_load_file(): URL:82: parser error : Opening and ending tag mismatch: br line 81 and programbeskrivelse in URL on line 15
Warning: simplexml_load_file(): er vurderet og rådgivet af de bedste affiliates i branchen.</programbeskrivelse in URL on line 15
Warning: simplexml_load_file(): ^ in URL on line 15
Warning: simplexml_load_file(): URL:91: parser error : Opening and ending tag mismatch: br line 80 and program in URL on line 15
Warning: simplexml_load_file(): </program> in URL on line 15
Warning: simplexml_load_file(): ^ in URL on line 15
警告:simplexml_load_file():URL:81:解析器错误:AttValue:“或”应出现在第15行的URL中
警告:第15行URL中的simplexml_load_file():
警告:第15行URL中的simplexml加载文件() 警告:simplexml_load_file():URL:81:解析器错误:第15行URL中的属性构造错误 警告:simplexml_load_file():
位于URL第15行 警告:第15行URL中的simplexml加载文件() 警告:simplexml_load_file():URL:81:解析器错误:在第15行的URL中找不到开始标记img>第81行的结尾 警告:第15行URL中的simplexml_load_file():
警告:第15行URL中的simplexml加载文件() 警告:simplexml_load_file():URL:82:解析器错误:开始和结束标记不匹配:br第81行和第15行URL中的ProgrambesKriverse
警告:simplexml_load_file():er vurderet og rådgivet af de Bedte附属公司i branchen。问题在于XML格式不正确。如果要修复错误(在属性值中添加引号)然后在读取
节点的值时会导致其他问题。SimpleXML将忽略字符串中的标记,使值
成为一些文本
。该节点的值很可能位于CDATA中。您可以检测字符串中的标记,并将节点值包装到CDATA中,但这可能很棘手。Offhand我想不出一个快速的解决方案。

我根据Chrashspeeders的评论想出了一个解决方案:

$remove = file_get_contents(stripslashes("URL"));

$remove = preg_replace("/<programbeskrivelse>[\d\D]*?<\/provision>/", "", $remove);

$remove = str_replace(array("&amp;", "&"), array("&", "&amp;"), $remove);

$xml = simplexml_load_string($remove);

是用于链接中的&字符。

我感兴趣的唯一值是,我不需要该值。您可以加载XML文件的内容,删除不关心其值的节点,然后使用加载结果XML字符串。只需确保保留根节点(在本例中,
)。当我有一个超过7000行的XML文件时,这不是无效的性能吗?这要视情况而定。您可能希望对将7000行XML文件加载到SimpleXML与3行文件之间的差异进行基准测试,然后对分析7000行XML文件以删除不使用的行进行基准测试。请记住,在创建SimpleXML obje时ct必须解析XML文件,这需要时间,因此删除这些行实际上可能会提高性能。
$remove = file_get_contents(stripslashes("URL"));

$remove = preg_replace("/<programbeskrivelse>[\d\D]*?<\/provision>/", "", $remove);

$remove = str_replace(array("&amp;", "&"), array("&", "&amp;"), $remove);

$xml = simplexml_load_string($remove);
$remove = str_replace(array("&amp;", "&"), array("&", "&amp;"), $remove);