繁体   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