簡體   English   中英

設置DOMelement的nodeValue:錯誤:試圖獲取非對象的屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM