1

何が間違っているのかわかりませんが、必要なものに適した nodeValue を取得しています。PHPスクリプトが完了したときに更新されていないだけです。コードは次のとおりです。

    $dom = new DOMDocument();
    //suppress HTML5 and other errors
    libxml_use_internal_errors(true);
    $dom->loadHTMLFile($pageURL);
    libxml_use_internal_errors(false);
    $xpath = new DOMXPath($dom);
    $divContent = $xpath->query("//*[@id='resultStats']/p")->item(0);
    $newText = new DOMText("100 results");
    var_dump($divContent->nodeValue); //returns old test value "400 results" which is correct
    $divContent->removeChild($divContent->firstChild);
    $divContent->appendChild($newText);
    var_dump($divContent->localName); //"p" because i got it from <p> in resultStats
    var_dump($divContent->textContent); //"100 results"
    var_dump($divContent->nodeValue); //"100 results"

その周りのHTMLの多く

    <div class="container">
    <div class="row">
    <div class="resultStats span3 offset1" id="resultStats">
      <p>400 results found.</p>
    </div>
    </div>
    <div class="row">
     <div class="span12">
         <div class="row">
              <div class="span6 offset1">
                  <?php
                         if (isset($_POST['q'])) {
                        //code from above that is executing every time from tests
                         }
                  ?>
               </div>
               <div class="span5">
                  span5
                  </div>
                  </div>
                  </div>
                  </div>

何が間違っているのかわかりません。dom->save を実行すると、すべて (php コードも含む) が書き換えられるので、それは良い考えではないと思います。

4

1 に答える 1