gpt4 book ai didi

xpath - 用于数字比较的xpath表达式

转载 作者:行者123 更新时间:2023-12-03 16:47:31 26 4
gpt4 key购买 nike

我正在写一个Greasemonkey脚本,所以不能更改源XHTML。

给定以下XHTML片段:

<td>
<span class="entry">Gender, Age:</span> Female, 42<br>
<span class="entry">Country, Town:</span> United Kingdom, London
<span class="small09"></span>
</td>


是否可以编写一个可以使用document.evaluate求值的表达式,该表达式将允许我选择年龄大于40岁的所有条目?我想要以下内容:

var matches = document.evaluate("//table[tbody/tr[2]/td[1][number(SOMEHOW 
MATCH THE AGE PART) > 40]]",
document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null);


谢谢

最佳答案

您不能对文本内容使用条件,但可以使用JavaScript过滤结果。

这样的事情应该起作用:

var targetCells     = document.evaluate (
"//table/tbody/tr[2]/td[1]",
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null
);

for (var J = targetCells.snapshotLength - 1; J >= 0; --J)
{
var thisCell = targetCells.snapshotItem (J);

//--- Get the age. Key off (fe)male, {age in decimal years}<br> in the text of the table cell
var ageTxt = thisCell.textContent.match (/male[, ]+(\d+)/i);

if (ageTxt && ageTxt.length > 1)
{
var age = parseInt (ageTxt[1]);
if (age > 40)
{
//-----------------------
//--- DO YOUR STUFF HERE.
//-----------------------
}
}
}

关于xpath - 用于数字比较的xpath表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5855347/

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