gpt4 book ai didi

php - DOMNodeList,xPath和PHP

转载 作者:行者123 更新时间:2023-12-03 17:00:53 25 4
gpt4 key购买 nike

我正在用PHP解析带有DOM和XPath的HTML页面。

我必须从HTML中获取嵌套的<Table...></table>

我已经在浏览器中使用FirePath定义了一个查询,该查询指向

html/body/table[2]/tbody/tr/td[2]/table[2]/tbody/tr/td/table


当我运行代码时,它说 DOMNodeList的长度为0。我的目标是将查询的 <Table>喷出为字符串。这是PHP中的HTML抓取脚本。

下面是功能。请帮助我如何提取所需的 <table>

$pageUrl = "http://www.boc.cn/sourcedb/whpj/enindex.html";

getExchangeRateTable($pageUrl);


function getExchangeRateTable($url){
$htmlTable = "";
$xPathTable = nulll;
$xPathQuery1 = "html/body/table[2]/tbody/tr/td[2]/table[2]/tbody/tr/td/table";

if(strlen($url)==0){die('Argument exception: method call [getExchangeRateTable] expects a string of URL!');}

// initialize objects
$page = tidyit($url);
$dom = new DOMDocument();
$dom->loadHTML($page);
$xpath = new DOMXPath($dom);

// $elements is sppearing as DOMNodeList
$elements = $xpath->query($xPathQuery1);

// print_r($elements);
foreach($elements as $e){
$e->firstChild->nodeValue;
}

}

最佳答案

从XPath查询中删除字形-在大多数情况下,浏览器会插入它们,就像您要抓取的页面一样。

/html/body/table[2]/tr/td[2]/table[2]/tr/td/table


这很可能会起作用。

但是,使用不同的XPath可能更安全。在XPath之后,将根据其文本内容选择第一个,然后选择tr的父项-tbody或表格:

//th[contains(text(),'Currency Name')]/parent::tr/parent::*

关于php - DOMNodeList,xPath和PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8403030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com