xml - IMPORTXML 不选择第一个元素

标签 xml xpath import google-sheets

过去几天我一直在尝试弄清楚如何使用以下 XMLIMPORT 只获取第一个元素。

这是我要抓取的网站的 URL:https://www.grainger.com/product/DURACELL-Battery-5LE23

我试图在不获取所有其他价格的情况下获取 25.45 美元的价格(17.36 美元) 6.97 美元、32.80 美元、7.29 美元、19.09 美元、24.34 美元、149.05 美元)。

我一直在使用:=IMPORTXML("https://www.grainger.com/product/DURACELL-Battery-5LE23 ", "//span[@itemprop='price']/text()[1]") 它一直向我显示所有 8 个价格。

我做错了什么?

最佳答案

看起来引用的网页源已更改。这时候下面的XPath查询

//span[@class = 'gcprice-value']

返回类似的结果:

      $13.49
      $12.14
      $34.60
      $30.50
       $4.52
      $13.49
       $6.07
     $160.50

为了只得到第一个价格,有几种选择:

  1. 使用归一化空间函数:
normalize-space(//*/span[@class = 'gcprice-value'])
  1. 将 IMPORTXML 嵌套在另一个 Google 表格函数中:
    (假设A1和A2分别持有URL,XPath查询
=Index(IMPORTXML(A1, A2),1)
  1. 使用另一个 XPath,例如 Chrome 开发者工具提供的 XPath
//*[@id="addItemsToCartFromIdp"]/div[1]/div[1]/div/div[1]/p/span[2]

关于xml - IMPORTXML 不选择第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33994860/

相关文章:

php - 在 Heroku 应用程序上将大文件导入 mysql

java - 如何从 Android 应用程序的 SD 卡解析 XML?

c# - 将 'Which branch?' 字段添加到 TFS 中的工作项

c# - 如何从 XElement 中删除特定节点?

xpath - 在短语中选择日期的正确 Xpath 子字符串是什么?

python - 如何在同一个包中导入 __init__.py 中定义的类?

xml - targetNamespace 和 xmlns

java - 定位元素和 getText() 值

xpath - Selenium IDE 和 xpath - 在表中查找文本/行并选择单选框

java - Grails - 导入 jsch 结果为 "package com.jcraft.jsch does not exist"