gpt4 book ai didi

html - 将 readHTMLTable 与多个 tbody 一起使用

转载 作者:太空宇宙 更新时间:2023-11-04 13:20:26 24 4
gpt4 key购买 nike

假设我有一个包含多个 <tbody> 的 HTML 表格,这we know is perfectly legal HTML , 并尝试用 readHTMLTable 读取它如下:

library(XML)
table.text <- '<table>
<thead>
<tr><th>Col1</th><th>Col2</th>
</thead>
<tbody>
<tr><td>1a</td><td>2a</td></tr>
</tbody>
<tbody>
<tr><td>1b</td><td>2b</td></tr>
</tbody>
</table>'
readHTMLTable(table.text)

我得到的输出只取第一个 <tbody>元素:

$`NULL`
Col1 Col2
1 1a 2a

并忽略其余部分。这是预期的行为吗? (我在文档中找不到任何提及。)访问整个表的最灵活、最可靠的方法是什么?

我正在使用

table.text <- gsub('</tbody>[[:space:]]*<tbody>', '', table.text)
readHTMLTable(table.text)

这会阻止我使用 readHTMLTable直接在 URL 上获取这样的表格,而且感觉不是很健壮。

最佳答案

如果您查看 readHTMLTable getMethod(readHTMLTable, "XMLInternalElementNode") 的源代码,它包含行

    if (length(tbody)) 
node = tbody[[1]]

所以特意设计成只选取第一个tbody的内容。此外,?readHTMLTable 将函数描述为提供

somewhat robust methods for extracting data from HTML tables in an HTML document

它被设计成一个效用函数。它在工作时很棒,但您可能需要绕过它。

关于html - 将 readHTMLTable 与多个 tbody 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18329325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com