我从链接中获取XML文档,并且只要我使用simplexml_load_file(),它就会出现错误,说明 *警告:simplexml_load_file():https://kga-dev.mirakl.net/api/shops?:1:解析器错误:启动标记期望,'&lt ;”在第6行的C:\ wamp \ www \ merchants \ get_merchants.php中找不到
这是我的xml文件的一部分
<body>
<shops>
<shop>...</shop>
<shop>
<approval_delay xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<approval_rate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<order_messages_response_delay xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<banner xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<billing_info>
<bank_city xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<bank_name xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<bank_street xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<zip_code xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<bic xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<iban xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<owner xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
</billing_info>
这是我简单的PHP代码
<?php
$apiLink = "https://kga-dev.mirakl.net/api/shops?";
$xml=simplexml_load_file($apiLink);
print_r($xml);
//echo $xml->shop_id;
?>
答案 0 :(得分:1)
您的代码
<approval_rate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
使用单引号
<?php
echo "<order_messages_response_delay xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:nil='true'/>";
?>
答案 1 :(得分:1)
您确定这与返回脚本的XML相同吗?请注意,您没有调用:1
- 我无法检查它是否需要授权,但在您给出的示例中,第7行没有错误,因此这意味着可能会返回其他内容,因为下面的代码可以工作:
<?php
$s = '<body>
<shops>
<shop>...</shop>
<shop>
<approval_delay xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<approval_rate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<order_messages_response_delay xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<banner xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
</shop>
</shops>
</body>';
$xml=simplexml_load_string($s);
print_r($xml);
&GT;
授权不是你的问题吗?我需要向您的网络服务授权:您是否以不同的方式处理您的IP或类似的事情?
答案 2 :(得分:1)
此问题的解决方案是,API提供JSON编码的字符串而不是XML字符串。因此无法使用SimpleXML解析传递的内容。尝试使用以下示例
$content = file_get_contents($apiLink);
$data = json_decode($content);
在这种情况下,$ data应该是一个包含api提供的所有数据的对象或数组。