1

我正在使用以下 xpath 来获取如下图所示的部分(http://advrider.com/forums/),但不是。有什么问题吗?

//TABLE/TBODY/TR[@class='dg-forums-level2 dg-align-center']/TD[2]/DIV[1]/A[1]

在此处输入图像描述

更新

<?php
$BASE_PATH = "../src/";

include_once($BASE_PATH  . "classes/forumdb.php");
include_once($BASE_PATH  . "classes/curl.php");

$curl = new curl();
$html = $curl->get_web_page('http://advrider.com/forums/');

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

$xpath = new DOMXpath($doc);

//$elements = $xpath->query("//TABLE[@class='tborder']/TBODY/TR[@class='']/TD[2]/DIV[1]/A[1]/STRONG[1]");

$elements = $xpath->query("//*[@id='f3']"); //works
//$elements = $xpath->query("//TABLE/TBODY/TR");


//TD[@id='f74']/DIV[1]/A[1]

if (!is_null($elements))
{

  foreach ($elements as $element)
  {
    echo "f<br/>[". $element->nodeName. "]";
    $nodes = $element->childNodes;
    foreach ($nodes as $node)
    {
      echo $node->nodeValue. "\n";
    }
  }
}

?>
4

4 回答 4

1
//li[div[@class='nodeInfo categoryNodeInfo categoryStrip' and div/h3/a[text()='Riding']]]//div[@class='nodeText']/h3[@class='nodeTitle']

使用它并尽量避开像 TD[2]/DIV[1]/A[1] 这样的地方。具有类的选择器比 DOM 树中具有数字位置的选择器更脆弱。

我希望它会有所帮助

于 2015-07-28T13:34:25.617 回答
1

我会用这个:

//*[@class="nodeTitle"]/a

demo

于 2016-12-27T19:51:24.040 回答
0

你可以试试下面的xpath:

//ol[@class='nodeList']//*[@class='nodeTitle']//a

它将找到页面中的所有部分。

于 2017-08-17T06:03:37.147 回答
-1

要获取部分详细信息文本或 url,请在 xpath 下方使用这些

//h3[@class="nodeTitle"]/a[@data-description]/text() #To grap text
//h3[@class="nodeTitle"]/a[@data-description]/@href #To grap url
于 2016-06-15T05:50:26.130 回答