一个接口,返回的是xml格式,我使用DOMDocuments 的load方法去加载XML的时候,提示:Warning: DOMDocument::load(): XML declaration allowed only at the start of the document in URL, line: 2 in D:\phpenv\apache\htdocs\\test.php on line 5 bool(false)
代码:
<?php
$doc = new DOMDocument();
$XML_URL="url";
// $db = $doc->load($XML_URL);
var_dump($db);
if ($db){
var_dump($db); $dictArray = $doc->getElementsByTagName("error");
//echo utf8_decode($dictArray->item(0)->nodevalue); }
url是一个调用的接口
代码:
<?php
$doc = new DOMDocument();
$XML_URL="url";
// $db = $doc->load($XML_URL);
var_dump($db);
if ($db){
var_dump($db); $dictArray = $doc->getElementsByTagName("error");
//echo utf8_decode($dictArray->item(0)->nodevalue); }
url是一个调用的接口
那个url返回的文档第一行是个换行,声明被挤到第二行去了。
先获取那个文档内容,去掉那个换行就行了,比如用trim()函数处理下.
哈哈
var_dump($sm);男人也不行的。我试了下那个接口在IE下能打开,但是在FF和chrome下都报了错
那就是接口本身的数据格式有问题,如果你能改接口的话,检查一下接口文档是不是UTF格式,注意要无BOM头。
XML解析错误:XML 或文本声明不在实体的开头
位置:url行:2,列:1:<?xml version="1.0" encoding="GBK"?>
,不过接口是淘宝提供的,据说还是从10年就开始在跑的,我只能怀疑自己哪没弄对,
$xml = file_get_contents($url);
$res = simplexml_load_string($out);
var_dump($res);我解析别的接口是可以解析的,不知道这个是哪弄的不对。
$xml = file_get_contents($url);
$res = simplexml_load_string($xml);
var_dump($res);
$xml = file_get_contents($url);
$res = simplexml_load_string($xml);
var_dump($res);