首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用XPATH在HTMl文档中查找元素?

如何使用XPATH在HTMl文档中查找元素?
EN

Stack Overflow用户
提问于 2019-04-08 20:40:01
回答 2查看 183关注 0票数 1

我在一个HTML文档中有以下内容:

代码语言:javascript
复制
<div class="prompt input_prompt xh-highlight">
   <bdi class="">In</bdi>
   "&nbsp;[&nbsp;]:"
</div>

为了找到这样的情况(我指的是表达式[ ]:),我尝试了以下想法,但都没有奏效:

代码语言:javascript
复制
//div/bdi/parent::*/text()="&nbsp;[&nbsp;]:"
//div/bdi/parent::*[contains(text(), " ")]
//div/bdi/parent::*[contains(text(), "&nbsp;")]
//div[contains(text(), "&nbsp;[&nbsp;]:")]
//div[contains(text(), "[ ]")]
//div[contains(text(), "[&nbsp;]")]
//div[contains(text(), "\u00a0]:")]

怎样做才是正确的?

EN

回答 2

Stack Overflow用户

发布于 2019-04-08 22:47:40

在XPath本身中,在字符串字面量中表示字符xA0的唯一方法是作为字符本身;因此您可以搜索//div[contains(., "[§]")],其中§是字符xA0。当然,这样做的缺点是对于您的读者来说,问题中的字符是xA0而不是普通空格是不明显的。

XPath通常嵌入在宿主语言中,宿主语言很可能提供另一种书写该字符的方法。例如,如果宿主语言是基于XML的(例如XSLT),那么您可以将其编写为&#xa0;,而如果它是Javascript,您可以将其编写为\u00a0

因此,编写表达式的方式取决于您的宿主语言约定。

票数 2
EN

Stack Overflow用户

发布于 2019-04-08 21:35:37

这可以正常工作:

您将搜索与以下xpath表达式匹配的所有元素:

代码语言:javascript
复制
//div/bdi/parent::*[contains(text(), "]:")]

然后循环遍历它们并获得它们的文本,您可以很容易地在逻辑和适当的语言中进行比较,比如python:

代码语言:javascript
复制
for element in elements:
    if '[ ]' in element.text:
        # some code
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55573736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档