gpt4 book ai didi

xpath - 在 XPath 中通过属性名称选择多个元素的更好方法

转载 作者:行者123 更新时间:2023-12-03 15:34:49 24 4
gpt4 key购买 nike

我希望根据 ID 名称数组选择一组元素。我目前正在使用一个巨大的 OR 语句:

//*[@id='apple']|//*[@id='orange']|//*[@id='banana']

但是手动构建该字符串似乎很困惑。是否有类似 SQL 风格的好东西 "WHERE IN [a,b,c]"我可以使用的运算符?

我正在为 ASP.Net 使用 HTTPAgilityPack,我认为它等同于 XPath1.o(请随时纠正我。)

谢谢。

最佳答案

首先,您可以使用 or 来简化此操作。 .这避免了重复 //*多次,尽管您直到指定 @id=多次部分:

//*[@id='apple' or @id='orange' or @id='banana']

一个更优雅的解决方案是检查可接受的 id 列表。现在,如果您使用的是 XPath 1.x,那么您将不得不做一些体操来让 contains() 来执行您的投标。具体来说,请注意我在第一个字符串的两端都有空格,然后将空格连接到 @id 的每一端。在寻找比赛之前。这是为了防止 @id"range"例如,来自匹配。
//*[contains(' apple orange banana ', concat(' ', @id, ' '))]

如果您使用的是 XPath 2.0,那么由于在语言中添加了序列,前进的道路会更简单:
//*[exists(index-of(('apple', 'orange', 'banana'), @id))]

关于xpath - 在 XPath 中通过属性名称选择多个元素的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3571410/

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