我有一个xml响应,其中包含以下节点
$response = '<packet version="1.6.6.0">
<webspace>
<del>
<result>
<status>ok</status>
<filter-id>14</filter-id>
<id>14</id>
</result>
</del>
</webspace>
</packet>';
我想在变量中获取节点<filter-id>
的值。
我正在做以下事情,
$dbres = simplexml_load_string($response);
$filterid = $dbres->webspace->result->filter-id;
echo $filterid;
我收到错误unexpected T_OBJECT_OPERATOR
,我认为在filter-id
中显示了连字符“ - ”。我无法更改xml,因为它是来自API的响应。我怎样才能获得filter-id?
答案 0 :(得分:2)
使用括号:
$dbres = simplexml_load_string($response);
$filterid = $dbres->webspace->result->{filter-id};
echo $filterid;
或投下它:
$dbres = simplexml_load_string($response);
$filterid = ((array) $dbres->webspace->result)['filter-id'];
echo $filterid;
或者 - 有点奇怪:
$dbres = simplexml_load_string(str_replace("filter-id", "filterid", $response));
$filterid = $dbres->webspace->result->filterid;
echo $filterid;
答案 1 :(得分:1)
你可以试试这个:
$dbres->webspace->result->{'filter-id'};