gpt4 book ai didi

php - 用于查找嵌套元素的 Xpath 查询

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

我很难弄清楚为什么我在这个基本的 2 部分 xpath 示例中没有得到任何结果,并且我使用 Chrome 的 XPath Helper 来确认第二个 xpath 查询确实正确并且确实返回我正在寻找的行。有人可以解释为什么它会产生空结果吗?在此示例中,我期望获得以 BNY 作为货币代码的表行,即中国的人民币。一般来说,我想要所请求的任何货币代码的表行数据,或者如果货币代码不在表中,则需要空结果。

我还尝试在 html 加载后立即执行第二个 xpath 查询(绕过 xpath 查询以检索表),但这会返回所有行。我觉得我在这里做的事情根本上是错误的,但我无法发现它,因为 Chrome 的 XPath Helper 工作正常。

    $ccode = 'CNY';
// Create a DOM object
$html = new simple_html_dom();

$url = "http://www.xe.com/symbols.php";
// Load HTML from a URL
$html->load_file($url);

$table = $html->find('table.currencySymblTable', 0);
$xpathQuery = '//table/tbody/tr/td[2][text() = "'.$ccode.'"]/..';
echo $xpathQuery;
$tr = $table->find($xpathQuery);
print_r($tr);

最佳答案

您使用了错误的货币代码,它应该是CNY,并且您使用了错误的

XPATH should be this table[@class="currencySymblTable"]/tr/td[2][text()="CNY"]/parent::tr

 <?php

ini_set('display_errors', 1);

libxml_use_internal_errors(true);
$htmlContent = file_get_contents("http://www.xe.com/symbols.php");
$object = new DOMDocument();
$object->loadHTML($htmlContent);
$xpath = new DOMXPath($object);
$xpathQuery = '//table[@class="currencySymblTable"]/tr/td[2][text()="CNY"]/parent::tr';
$results = $xpath->query($xpathQuery);
foreach ($results as $result)
{
print_r($result);
}

输出:

DOMElement Object
(
[tagName] => tr
[schemaTypeInfo] =>
[nodeName] => tr
[nodeValue] => China Yuan RenminbiCNY¥¥165a5 info
[nodeType] => 1
[parentNode] => (object value omitted)
[childNodes] => (object value omitted)
[firstChild] => (object value omitted)
[lastChild] => (object value omitted)
[previousSibling] => (object value omitted)
[nextSibling] => (object value omitted)
[attributes] => (object value omitted)
[ownerDocument] => (object value omitted)
[namespaceURI] =>
[prefix] =>
[localName] => tr
[baseURI] =>
[textContent] => China Yuan RenminbiCNY¥¥165a5 info
)

关于php - 用于查找嵌套元素的 Xpath 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43730135/

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