我正在使用IMPORTXML和Google表格。我想将以下嵌套列表转换为表。从技术上讲,该文档是一个表格,每个单元格都有列表。
来源: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
的列表,而我想简单地抓住每个匹配的顶级元素子元素。
感谢您的帮助。
答案 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列,因此如果您不在第一行开始,则应更新此引用