在Google文档中使用= importXML

时间:2013-06-28 08:15:29

标签: xpath google-sheets

来自网站https://www.google.co.uk/finance?cid=704531我正在尝试导入“范围”和“52周”字段以及该组中间的其他字段。我看过XPath并且对此非常困惑。

在单元格A1中,我有https://www.google.co.uk/finance?cid=704531

在单元格B1中我有

=importxml(A1,//*[@id="market-data-div"]/div[2]/div[1]/table[1]/tbody/tr[4]/td[1])

但结果是错误。

此HTML结构的正确XPath表达式是什么?

1 个答案:

答案 0 :(得分:4)

Dom和<tbody/>

您似乎在Firebug或类似的开发人员工具中创建了该XPath表达式。虽然HTML不需要<tbody/>标签,但DOM确实如此;这些开发人员工具在DOM上工作,从而将表行包装在这样的元素中。在查看页面源(由wget或其他必要工具提取)和Firebug提供的结构时,您可以轻松查看差异。

只需省略表达式中的/tbody轴步骤:

//*[@id='market-data-div']/div[2]/div[1]/table[1]/tr[4]/td[1]

无论如何,我宁愿通过描述来获取单元格,这对于措辞的变化稍微弱一些,但对结构的变化要强得多:

//*[@id='market-data-div']//tr[td = 'Vol / Avg.']/td[2]

引用表达式

第二个问题是你必须用双引号引用XPath表达式,例如使用:

=importxml(A1,"//*[@id='market-data-div']//tr[td = 'Vol / Avg.']/td[2]")