gpt4 book ai didi

html - 我可以编写来选择一个元素或不同元素的子元素的最短 Xpath 是什么?

转载 作者:行者123 更新时间:2023-12-03 17:02:43 30 4
gpt4 key购买 nike

我想编写一个 Xpath (1.0),其中使用一个公共(public)基本元素,它选择具有不同标签类型和深度级别的元素。例如,我可以在 Google 站点上使用以下 Xpath:
//*[@id='main']/span | //*[@id='main']/div/script
...使用以下 HTML:

<div id="main" class="content" data-jiis="cc">
<span id="body" class="ctr-p">
<div id="footer" class="ctr-p">
<div id="footc" data-jiis="uc" data-jibp="h">
<script>
<div id="xfoot">...</div>
</div>
</div>

虽然我更喜欢它作为类似的东西:
//*[@id='main'](/span | /div/script)
...这是一个非法的表达。我尝试了一些 self东西,但我不知道如何让它捕获 script ,而不是 div :
//*[@id='main']/*[self::span | self::div/script]
我了解 self::div/script表示选择 divscript child ,但我无法确定选择 script 的轴(如果存在)在这种情况下。我怎么能做到这一点?或者我必须使用我描述的第一个 Xpath?

最佳答案

XPath 表达式的中间不能有可选轴。不过,您可以将查询翻过来:

//*[self::span or self::script[parent::div]][ancestor::div[@id="main"]] 

关于html - 我可以编写来选择一个元素或不同元素的子元素的最短 Xpath 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40937373/

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