Php 使用simplexml_load_string()时缺少数据
当我在php中使用Php 使用simplexml_load_string()时缺少数据,php,xml,simplexml,Php,Xml,Simplexml,当我在php中使用simplexml\u load\u string时,如下所示: $response = '<?xml version="1.0" encoding="UTF-8"?> <epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:domain="http://epp.nic.ir/ns/domain-1.0"> <response xmlns:domain="http://epp.nic.ir/ns/
simplexml\u load\u string
时,如下所示:
$response = '<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:domain="http://epp.nic.ir/ns/domain-1.0">
<response xmlns:domain="http://epp.nic.ir/ns/domain-1.0">
<result code="1000">
<msg>Command completed successfully</msg>
</result>
<resData xmlns:domain="http://epp.nic.ir/ns/domain-1.0">
<domain:chkData xmlns:domain="http://epp.nic.ir/ns/domain-1.0">
<domain:cd>
<domain:name normalized_name="dsfdsfdsfsdfdffdg"
canonized_name="dsfdsfdsfsdfdffdg" tld="ir" avail="1">
dsfdsfdsfsdfdffdg.ir
</domain:name>
</domain:cd>
</domain:chkData>
</resData>
<trID>
<clTRID>TEST-14922533391168726112</clTRID>
<svTRID>IRNIC_2017-04-15T15:18:59+04:30_epi</svTRID>
</trID>
</response>
</epp>';
$a = simplexml_load_string($response);
var_dump($a);
$a = simplexml_load_string($result);
$ns = $a->getNamespaces(true);
var_dump($a->response->resData->children($ns['domain']));
$response=
命令已成功完成
dsfdsfdsfsdffdg.ir
测试-1492253391168726112
IRNIC_2017-04-15T15:18:59+04:30_epi
';
$a=simplexml\u加载\u字符串($response);
var_dump($a);
当我显示$a
时,我没有resData
值,并且我缺少此属性。
我怎样才能解决这个问题 您使用了错误的变量
$response
,该变量根本没有初始化。使用包含完整html字符串的$result
而不是$response
试试这个
谢谢@splash58.
我应该像这样使用名称空间:
$response = '<?xml version="1.0" encoding="UTF-8"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:domain="http://epp.nic.ir/ns/domain-1.0">
<response xmlns:domain="http://epp.nic.ir/ns/domain-1.0">
<result code="1000">
<msg>Command completed successfully</msg>
</result>
<resData xmlns:domain="http://epp.nic.ir/ns/domain-1.0">
<domain:chkData xmlns:domain="http://epp.nic.ir/ns/domain-1.0">
<domain:cd>
<domain:name normalized_name="dsfdsfdsfsdfdffdg"
canonized_name="dsfdsfdsfsdfdffdg" tld="ir" avail="1">
dsfdsfdsfsdfdffdg.ir
</domain:name>
</domain:cd>
</domain:chkData>
</resData>
<trID>
<clTRID>TEST-14922533391168726112</clTRID>
<svTRID>IRNIC_2017-04-15T15:18:59+04:30_epi</svTRID>
</trID>
</response>
</epp>';
$a = simplexml_load_string($response);
var_dump($a);
$a = simplexml_load_string($result);
$ns = $a->getNamespaces(true);
var_dump($a->response->resData->children($ns['domain']));
这是名称空间的问题。看这里-我已经写了一些第一步如果你想得到任何值,你可以注册名称空间并使用Xpath