Php 使用simplexml_load_string()时缺少数据

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/

当我在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/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