[英]Setting nodeValue of a DOMelement : error :Trying to get property of non-object
運行此php腳本時:
$doc = new DOMDocument();
$doc->loadHTMLFile("some_url.html");
$ele1 = $doc->getElementById ( "coupon" );
if($ele1->length){
$doc->getElementById ( "coupon" )->item(0)->nodeValue =$result["affiliate_name"] ;}
我得到:如果這不是正確的方法,則Trying to get property of non-object
在最后一行Trying to get property of non-object
,如何設置必須提取usig其ID的標記的文本。
這是我的some_url.html:
<div class="panel panel-success">
<div class="panel-heading">
<h3 id="coupon" class="panel-title">Coupon name 1</h3>
</div>
<p id="coupon_id" hidden>coupon id</p>
<div id="counter-up" class="panel-body">
0
</div>
</div>
謝謝
根據官方文檔, getElementById()
返回單個DOMElement
,該DOMElement
擴展了DOMNode
,而后者又具有您要更改的$nodeValue
字段。 DOMNode
不是DOMNodeList
,因此它既沒有$length
字段,也沒有item()
方法。 因此,您不應該在該元素上調用item()
,而是可以直接操縱其$nodeValue
。 要找出此類元素是否存在,只需測試getElementById()
的結果是否等於NULL
(或使用if ($element)
作為簡寫)。 完整的代碼如下所示:
$doc = new DOMDocument();
$doc->loadHTMLFile("some_url.html");
$ele1 = $doc->getElementById("coupon");
if ($ele1) $ele1->nodeValue = $result["affiliate_name"];
資料來源:
http://pl1.php.net/manual/en/domdocument.getelementbyid.php
http://pl1.php.net/manual/en/class.domelement.php
http://pl1.php.net/manual/en/class.domnode.php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.