2013-07-08 45 views
-1

我就$level1行我的代碼得到一個Call to undefined method DOMDocument::xpath()找不到XPath查詢錯誤,`未定義的方法DOMDocument`

  $doc = new DOMDocument(); 
      $doc->strictErrorChecking = FALSE; 
      $doc->loadHTML($html); 
      $xml = simplexml_import_dom($doc); 
      $level1 = $doc->xpath('//*[contains(concat(" ", normalize-space(@class), " "), " category-wrap ")]/h2/a'); 

這裏是它的加載(通過file_get_contents())的HTML:

<div class="category-wrap"> 
    <a href='#'>LINK</a> 
    <h2><a href="#">Trying to get this....</a></h2> 
    <p>A description</p> 

</div> 

我使用this answer作爲xpath查詢的參考。

我的查詢出了什麼問題?

+0

沒有什麼不對您的查詢SimpleXMLObject ,那裏只是缺乏對錯誤信息的理解。它很容易修復,只需採取正確的對象。 – hakre

回答

2

DOMDocument中沒有像xpath這樣的方法。 見http://php.net/manual/en/class.domdocument.php

需要初始化DOMXpath的實例使用XPath查詢

$doc = new DOMDocument(); 
$doc->strictErrorChecking = FALSE; 
$doc->loadHTML($html); 

$xpath = new DOMXpath($doc); 

或可替換地調用該方法在您創建

$level1 = $xml->xpath('//*[contains(concat(" ", normalize-space(@class), " "), " category-wrap ")]/h2/a'); 
+0

那麼未來的查詢就是'$ xpath('query');'? – Jared

+0

第一個選項是$ xpath-> xpath('query'); – WooDzu

相關問題