【发布时间】:2014-02-28 16:00:36
【问题描述】:
已定义属性的 XML 对象解析成功,但未定义属性未成功。假设我们没有属性并尝试将其分配给变量,会引发如下错误:
下面的代码是这样写的:
$data['id'] = $xml[0]->response->list->region[0]->id;
但是如果没有id属性存在,则遇到上述错误
通过以下条件尝试:
if($xml[0]->response->list->region[0]->id)
if($xml[0]->response->list->region[0]->id==false)
if($xml[0]->response->list->region[0]->id=="undefined")
if (!is_object($xml[0]->response->list->region[0]->id))
以上都失败了
解析代码是:
$url = 'xmloutputtingurl';
$xmlContents = $this->curl->simple_get($url);
$xml = implexml_load_string($xmlContents);
$data['xml'] = xml;
接收的xml数据是:
它的xml作为数组的输出是:
object(SimpleXMLElement)[19]
public 'request' =>
object(SimpleXMLElement)[20]
public 'state' => string 'California' (length=10)
public 'city' => string 'Los Angeles' (length=11)
public 'childtype' => string 'neighborhood' (length=12)
public 'message' =>
object(SimpleXMLElement)[21]
public 'text' => string 'Request successfully processed' (length=30)
public 'code' => string '0' (length=1)
public 'response' =>
object(SimpleXMLElement)[22]
public 'region' =>
object(SimpleXMLElement)[23]
public 'id' => string '12447' (length=5)
public 'latitude' => string '34.020921' (length=9)
public 'longitude' => string '-118.411732' (length=11)
public 'subregiontype' => string 'neighborhood' (length=12)
public 'list' =>
object(SimpleXMLElement)[24]
public 'count' => string '96' (length=2)
public 'region' =>
array (size=95)
如果在某些情况下 list->region 标签下没有提到 id,则会导致错误
任何人都可以帮助解决这个问题,以及在解析 json 时如何从 JavaScript 实现相同的场景。
提前致谢
【问题讨论】:
-
什么是
$xml[0]?向我们展示生成$xml的解析代码。
标签: javascript php xml json codeigniter