我正在尝试连接到API系统,并且它使用XML进行通信。当我尝试获取请求时,API会向我返回一个XML字符串,如下所示:
<?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="dasfasfgg" canonized_name="dasfasfgg" tld="ir" avail="1">dasfasfgg.ir</domain:name>
</domain:cd>
</domain:chkData>
</resData>
<trID>
<clTRID>TEST-12345</clTRID>
</trID>
</response>
</epp>
我想在avail
名称空间上获得domain:name
属性。我尝试过:
$xml = simplexml_load_string($response);
$attrs = $xml->domain->attributes();
但是in返回一个空对象。如何获取属性?
答案 0 :(得分:-1)
这不是最优雅的方法,但是:
$xml = simplexml_load_string($response); // as response I understand given xml as string
$namespaces = $xml->getNamespaces(true);
$value = $xml->response->resData->children($namespaces['domain'])->chkData->cd->name->attributes()->avail[0];