PHP cURL可以';不能创建XML
我正在尝试从URL获取XML文件。 但是我只从文件中获取文本,没有语法 我的代码:PHP cURL可以';不能创建XML,php,xml,curl,Php,Xml,Curl,我正在尝试从URL获取XML文件。 但是我只从文件中获取文本,没有语法 我的代码: $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://services.mobile.de/search-api/search?country=DE&sort.field=makeModel&sort.order=ASCENDING'); curl_setopt($ch, CURLOPT_HTTPHEADER,
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://services.mobile.de/search-api/search?country=DE&sort.field=makeModel&sort.order=ASCENDING');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Basic '. base64_encode("username:password"), 'Accept:
application/xml'));
$xml = new SimpleXMLElement(curl_exec($ch));//line 14
curl_close($ch);
print_r($xml);
我的输出:
....sensorsBlackEuro5PetrolManual gearboxAutomatic air conditioningUsed vehicle150.90525114.812090CarSmall CarVolkswagenPoloCentral lockingElectric windowsImmobilizerPower Assisted SteeringABSESPFull Service HistoryElectric side mirrorOn-board computerCD playerTuner/radioIsofix (child seat anchor points)Parking sensor
Warning: SimpleXMLElement::__construct(): Entity: line 1: parser error : Start tag expected, '<' not found in /Applications/XAMPP/xamppfiles/htdocs/test.php on line 14
Warning: SimpleXMLElement::__construct(): 1 in /Applications/XAMPP/xamppfiles/htdocs/test.php on line 14
Warning: SimpleXMLElement::__construct(): ^ in /Applications/XAMPP/xamppfiles/htdocs/test.php on line 14
Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /Applications/XAMPP/xamppfiles/htdocs/test.php:14 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/test.php(14): SimpleXMLElement->__construct('1') #1 {main} thrown in /Applications/XAMPP/xamppfiles/htdocs/test.php on line 14
我只知道:
$xml = new SimpleXMLElement(curl_exec($ch));//line 14
new simplexmlement()
只有一个参数,默认情况下,XML()和curl\u exec($ch)
返回true
或false
)。因此,很清楚为什么这不起作用:
您可能希望遵循curl_exec手册页面上的提示:
成功时返回TRUE,失败时返回FALSE。但是,如果
CURLOPT_RETURNTRANSFER选项已设置,它将在
成功,失败为假
。。。但是您仍然需要验证它是否为false。如果忽略错误检查,您的代码将不时随机失败。当您在浏览器上打开xml url时,是否可以看到有效的xml?您知道API返回xml的事实吗?如果使用curl从命令行发送请求,会发生什么情况?是否确实从请求中获取XML文件?什么是
$response=curl\u exec($ch);echo htmlspecialchars($response)代码>显示给你看?@hakkikonu我通过浏览器获得了正确的XML。@JimGarrison我想是的。使用curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);我只得到SimpleXMLElement对象(),在知道响应是否良好之前,不通过几层代码处理响应。从例如var_dump()开始。问题是curl只返回原始xml文件中的stings列表。缺少XML语法。您是否碰巧在HTML文档中显示了XML标记,然后通过浏览器查看所有呈现的内容?如果是这样,您必须使用“查看源代码”菜单项。太好了,谢谢!浏览器隐藏了xml。我可以通过echo htmlspecialchars(curl_exec($ch))看到它;但是$xml=$xml=simplexml\u load\u string(curl\u exec($ch))或die(“错误”);print\r($xml)仍然返回“ERROR”(需要开始标记,'
$sxe = simplexml_load_string($re);
print_r($sxe);
SimpleXMLElement Object ( )
$xml = new SimpleXMLElement(curl_exec($ch));//line 14