簡體   English   中英

嘗試的XPath查詢未顯示任何結果

[英]Attempted XPath query not showing any results

我目前在幻想體育網站上工作,並且希望能夠從其他網站獲取基本統計信息。 (我對XML或從其他站點提取數據沒有太多經驗)。

我檢查了該元素以獲得XPath:

獲取XPath

這給了我: //*[@id="cp1_ctl01_pnlPlayerStats"]/table[1]/tbody/tr[4]/td[18]

我研究了幾種嘗試獲取信息的方法,並提出了以下方法:

代碼1

但是我最終只是在網站內的表中添加了空元素:

在此處輸入圖片說明

這是我的代碼:

        $doc = new DOMDocument();
        @$doc->loadHTMLFile($P_RotoLink);

        $xpath = new DOMXpath($doc);

        $elements = $xpath->query('//*  [@id="cp1_ctl01_pnlPlayerStats"]/table[1]/tbody/tr[4]/td[18]');

        if (!is_null($elements)) {
            foreach ($elements as $element) {
                $nodes = $element->childNodes;
                foreach ($nodes as $node) {
                    echo $node->nodeValue. "\n";
                }
            }
        }

我嘗試過的一些事情給我拋出了錯誤,每當我終於通過它們或壓制它們時,我都會得到空的內容。 我嘗試了很多不同的格式,但似乎都沒有給我想要的內容。

編輯:這是源HTML,我想在td(13.0)內獲取值。

在此處輸入圖片說明

編輯2:這就是我現在正在嘗試的方法:

$html = file_get_contents($P_RotoLink);

$doc = new DOMDocument;
libxml_use_internal_errors(true);
$doc->loadHTML($html);
libxml_use_internal_errors(false);
$xpath = new DOMXpath( $doc);

foreach ($xpath->query('//*[@id="cp1_ctl01_pnlPlayerStats"]/table//tr[4]/td[18]') as $node) {
                                        $ppg = substr($node->textContent,0,3);
                                        echo $ppg;
                                    } 

在此處輸入圖片說明

問題在於屏幕快照中的表沒有tbody節點,但是您的XPath表達式包含tbody ,這導致DOMXPath::query返回空的節點列表。 我建議忽略tbody並僅使用//tr獲取行。

$html = <<<'HTML'
<div id="cp1_ctl01_pnlPlayerStats">
  <table>
    <tr></tr>
    <tr>
      <td><span>0.9</span>1.0<span>3.0</span></td><td>2.0</td>
    </tr>
  </table>
</div>
HTML;

$doc = new DOMDocument();
$doc->loadHTML($html);
$xp = new DOMXPath($doc);
$expr = '//*[@id="cp1_ctl01_pnlPlayerStats"]/table//tr[2]/td[1]/text()';
$td = $xp->query($expr);
if ($td->length) {
  var_dump($td[0]->nodeValue);
}

輸出量

string(3) "1.0"

text()函數選擇上下文節點的所有文本節點子級。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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