他のサーバーからの 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オブジェクトであり、エラーはありません。
何も問題がなければ、要素を取得するより良い方法はありますか?