meh*_*hma 1 php xml xml-parsing
我创建了一个脚本,从URL获取XML并更新mysql数据库并将数据解析为csv文件.
我用XML获取HTML字符串,它们不应该存在.解析时如何删除它们?
我像这样加载XML文件:
$xml = simplexml_load_file(utf8_encode($xml_url), 'SimpleXMLElement', LIBXML_NOCDATA);
Run Code Online (Sandbox Code Playgroud)
运行脚本时出错:
Warning: simplexml_load_file() [function.simplexml-load-file]: http://domain.com/api/get_catalog.php?id=351&user=878&key=b8:1: parser error : Space required after the Public Identifier in /dokumenti/skripte/xmlupdate/lost/test/lost_xml.php on line 59
Warning: simplexml_load_file() [function.simplexml-load-file]: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /dokumenti/skripte/xmlupdate/lost/test/lost_xml.php on line 59
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /dokumenti/skripte/xmlupdate/lost/test/lost_xml.php on line 59
Warning: simplexml_load_file() [function.simplexml-load-file]: http://domain.com/api/get_catalog.php?id=351&user=878&key=b8:1: parser error : SystemLiteral " or ' expected in /dokumenti/skripte/xmlupdate/lost/test/lost_xml.php on line 59
Warning: simplexml_load_file() [function.simplexml-load-file]: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /dokumenti/skripte/xmlupdate/lost/test/lost_xml.php on line 59
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /dokumenti/skripte/xmlupdate/lost/test/lost_xml.php on line 59
Warning: simplexml_load_file() [function.simplexml-load-file]: http://domain.com/api/get_catalog.php?id=351&user=878&key=b8:1: parser error : SYSTEM or PUBLIC, the URI is missing in /dokumenti/skripte/xmlupdate/lost/test/lost_xml.php on line 59
Warning: simplexml_load_file() [function.simplexml-load-file]: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> in /dokumenti/skripte/xmlupdate/lost/test/lost_xml.php on line 59
Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /dokumenti/skripte/xmlupdate/lost/test/lost_xml.php on line 59
xml $ not loaded.
Run Code Online (Sandbox Code Playgroud)
当我使用Firefox并将XML从url保存到磁盘时,我尝试从url获取它时没有问题解析它.
XML看起来很好:XML的一部分:
<?xml version="1.0" encoding="UTF-8"?>
<RecroKatalog>
<viewCustomerDiscount>
<BrojArtikla>10214</BrojArtikla>
<Naziv>Eksterno kucište 2.5" S-ATA+IDE HDD, Aluminium, USB 2.0</Naziv>
<NetoPrice>81.8224</NetoPrice>
<Status>Dostupno</Status>
<Opis></Opis>
<dugi_opis>Isporucuje se u SIVOJ boji</dugi_opis>
<Image>http://shop.lost.hr/data/images/big/10.jpg</Image>
<WEB_Grupa>Ladice i eksterna kucišta - OSTALO</WEB_Grupa>
<Akcija>0</Akcija>
<Proizvodjac></Proizvodjac>
<Klasifikacija>PH-25SD-B/VK220</Klasifikacija>
</viewCustomerDiscount>
Run Code Online (Sandbox Code Playgroud)
错误消息中有一些巨大的线索.它抱怨看到:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
Run Code Online (Sandbox Code Playgroud)
它是由该网站提供的HTML文档的开始...而不是您正在寻找的XML.
这通常发生在您必须对远程服务进行身份验证时(因此在您登录时在浏览器中工作),但您并没有告诉SimpleXML为您执行此操作.
| 归档时间: |
|
| 查看次数: |
14514 次 |
| 最近记录: |