我试图在使用xpath的html页面的段落中的' - '之前获取一个字符串并将其发送到yql
例如,我想从以下文章中获取日期:
<div> <p>Date --- the body of the article</p> </div>
我在yql中尝试了这个查询:
select * from html where url="article url" and xpath="//div/p/text()/[substring-before(.,'--')]"
但它不起作用。
如何获得“ - ”
之前的文章日期答案 0 :(得分:0)
您可以简单地使用:
substring-before(//div/p,'--')
答案 1 :(得分:0)
使用强>:
substring-before(/div/p/text(), '--')
此XPath表达式求值为XML文档中第一个文本节点中紧邻'--'
之前的字符串,即p
的子级div
的子级元件。
如果您想为每个此类文本节点获取此值,则必须使用如下表达式:
substring-before((//div/p/text())[$k], '--')
并为$N
$k = 1,2, ..., $N
次{。}}次
其中$N
为count(//div/p/text())
请注意:在静态了解XML文档的结构时,请尽量避免使用//
XPath伪运算符。使用//
通常会导致很大的低效率(O(N ^ 2))在大型XML文档中感觉特别痛苦。