获取xpath查询的祖先

时间:2018-06-04 08:22:14

标签: xml xpath google-sheets

我正在使用IMPORTXML和Google表格。我想将以下嵌套列表转换为表。从技术上讲,该文档是一个表格,每个单元格都有列表。

enter image description here 来源:https://en.wikipedia.org/wiki/2018_FIFA_World_Cup

这是我理想的桌面布局:

| Name      | Section |
| ---       | ---     |
| Australia | AFC     |
| Iran      | AFC     |
| ...       | ...     |

我使用了这两个查询: //*[@id='mw-content-text']/div/div[9]/table/tr/td/ul/li/../../dl/dt/a//*[@id='mw-content-text']/div/div[9]/table/tr/td/ul/li/span/a/ancestor::td/dl/dt/a

问题是,正如你猜测的那样,我无法弄清楚为什么,所有这些查询都是抓取AFC, CAF, CONCACAF, CONMEBOL, OFC, UEFA的列表,而我想简单地抓住每个匹配的顶级元素子元素。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您是否尝试过以下选择器:

//*[@id='mw-content-text']/div/div/table[@class='multicol']//li/parent::ul/preceding-sibling::dl/dt/a

请告诉我这是否对您有用,因为它只是给我这些标题。

答案 1 :(得分:0)

第一栏:=IMPORTXML("https://en.wikipedia.org/wiki/2018_FIFA_World_Cup","//h3/span[text()=""Qualification""]/parent::h3/following-sibling::div[2]//li/span/a")

第二栏: =IMPORTXML("https://en.wikipedia.org/wiki/2018_FIFA_World_Cup","//h3/span[text()=""Qualification""]/parent::h3/following-sibling::div[2]//li/span/a[text()="""&A1&"""]/ancestor::ul/preceding-sibling::dl")

请注意,第二列中的xpath引用了A列,因此如果您不在第一行开始,则应更新此引用