【问题标题】:How to write XPath to capture text that is not tagged如何编写 XPath 来捕获未标记的文本
【发布时间】:2009-09-01 13:47:54
【问题描述】:

我正在尝试从网站上删除客户评论,但遇到了一个有趣的设置。

<div class="Review">
  <img class="stars" etc>
  <b>ReviewerName</b>
  - yyyy-mm-dd
  <br/>
  <p>Review</p>
  <a>was this helpful links</a>
  <hr/>
  <br/>
  <!-- Repeat above for additional reviews. -->
</div>

在我的一生中,我无法想出一个可以捕获日期的 XPath (- yyyy-mm-dd),因为它周围没有 HTML 格式。谁有解决办法?

乔恩

【问题讨论】:

  • @Jon:编程问答网站不允许您发布代码的可能性有多大? ;-) 下次编辑问题时请查看右侧,边栏中有一些有用的格式提示。

标签: text xpath screen-scraping


【解决方案1】:

假设这样的结构:

<div class="Review">
    <img class="stars"/><b>ReviewerName</b> - yyyy-mm-dd<br/>
</div>

下面的xpath选择日期yyyy-mm-dd

substring-after(/div/b/following-sibling::text()[1],' - ')

【讨论】:

  • substring-after() 对可能以预期形式存在或不存在的空白有点假设。我可能会删除“外部”编程语言中的破折号。特别是因为大多数编程语言不允许您访问 XPath 函数结果,只有节点集。
猜你喜欢
  • 1970-01-01
  • 2016-06-30
  • 2021-05-18
  • 2019-06-16
  • 2020-12-29
  • 2017-12-04
  • 1970-01-01
  • 2011-07-11
  • 1970-01-01
相关资源
最近更新 更多