我正在尝试解析来自其他服务器的 xml 响应。
我可以从那个 xml 中获取我需要的对象。但有些时候,有些如何,我不能得到一些对象。并出现此错误。
致命错误:在第 91 行调用非对象上的成员函数 getElementsByTagName()
我检查了每件事,我认为没有任何问题。
这是一个示例 xml 响应:
<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:infData xmlns:domain="http://epp.nic.ir/ns/domain-1.0">
<domain:name>pooyaos.ir</domain:name>
<domain:roid>305567</domain:roid>
<domain:status s="serverHold"/>
<domain:status s="irnicReserved"/>
<domain:status s="serverRenewProhibited"/>
<domain:status s="serverDeleteProhibited"/>
<domain:status s="irnicRegistrationDocRequired"/>
<domain:contact type="holder">pe59-irnic</domain:contact>
<domain:contact type="admin">pe59-irnic</domain:contact>
.
.
and more...
我试图得到这个对象domain:infData
我认为错误来自这部分。
当我试图获取这个对象时,domdocument 返回 null。
php代码:
function DinfData()
{
$data = $this->dom->getElementsByTagName("infData")->item(0);
91: $name = $data->getElementsByTagName("name")->item(0)->nodeValue;
$roid = $data->getElementsByTagName("roid")->item(0)->nodeValue;
$update = $data->getElementsByTagName("upDate")->item(0)->nodeValue;
$crdate = $data->getElementsByTagName("crDate")->item(0)->nodeValue;
$exdate = $data->getElementsByTagName("exDate")->item(0)->nodeValue;
and more...
我错误地标记了第 91 行。
谢谢 ....
编辑
$this->dom
是我的 DOMDocument 对象并且没有错误。
如果没有任何问题,有没有更好的方法来获取元素?