【问题标题】:What's the best way to select this kind of text in HTML?在 HTML 中选择这种文本的最佳方法是什么?
【发布时间】:2014-11-05 23:13:57
【问题描述】:
<td>
some text here
<a href="http://blablabla">ch1</a>
</td>

选择some text here 的最佳方式是什么?我想用 css 选择器或 xpath 来做到这一点,更好地 without jquery。谢谢你。 (我知道这个问题很可能是重复的......)

【问题讨论】:

  • 你想要的是 第一个 文本节点,所以只需使用text()[1] 访问它,text() 在这种情况下有效,但它是我认为不安全(因为将来可能会添加一些其他文本节点)。

标签: html xpath css-selectors


【解决方案1】:

只是节点的text()

//td/text()

演示(使用xmllint):

$ xmllint index.html --html --xpath '//td/text()'
some text here

另外,要遵循@King King 的评论,您可能希望通过指定索引来明确获取第一个文本节点(如果有其他td 的文本子节点会有所帮助):

//td/text()[1]

不过,//td/text() 在您提供的输入上完美运行。

【讨论】:

  • 您的解决方案是正确的,但似乎text() 不能用于selenium xpath 选择器。
  • @laike9m 是的,你可以按照here 的建议并从td 的文本中“减去”链接文本。
  • @laike9m 或者,您可以获取tdinnerHTML 并使用HTML 解析器(如BeautifulSouplxml 在Python 的情况下)来提取所需的文本。
  • 谢谢 alecxe,我尝试在 td 网络元素上调用 .text 并得到我想要的文本。
猜你喜欢
  • 1970-01-01
  • 2013-04-08
  • 1970-01-01
  • 2015-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多