我有一个程序的HTML表格输出,用于将单元格中的值与<div class="parallax-container>
<div class="parallax">
<img src="http://wallpapercave.com/wp/JRiV1lH.png">
</div>
</div>
分开。我尝试过使用<br>
和XML::readHTMLTable
,但他们将这些值组合在一起而没有任何分隔符。我需要它们以逗号分隔,但我没有看到这些函数的任何参数来解释这一点。我已经发布了以下文件的伪造示例。目前,它会读入两个向量htmltab
和c("ABC","DEF","GHI")
,但我需要将c("JKLMNO","PQR","STU")
元素改为"JKLMNO"
。
"JKL,MNO"
答案 0 :(得分:0)
library(rvest)
library(dplyr)
doc <- read_html("<table>
<tr>
<td>
ABC<br/>
</td>
<td>
DEF<br/>
</td>
<td>
GHI<br/>
</td>
</tr>
<tr>
<td>
JKL<br/>
MNO<br/>
</td>
<td>
PQR<br/>
</td>
<td>
STU<br/
</td>
</tr>
</table>")
tab <- html_table(doc)[[1]]
mutate(tab, X1=gsub("[\r\n][[:space:]]+", ",", X1))
## X1 X2 X3
## 1 ABC DEF GHI
## 2 JKL,MNO PQR STU
<强>更新强>
对于那些使用不同格式的HTML并且可能不会感觉到张贴压力的人,如果你有,请说:
doc <- read_html("<table>
<tr>
<td>ABC<br/></td>
<td>DEF<br/></td>
<td>GHI<br/></td>
</tr>
<tr>
<td>JKL<br/>MNO<br/></td>
<td>PQR<br/></td>
<td>STU<br/</td>
</tr>
</table>")
上述解决方案无效,因为它与OP的数据不同。我知道......这是令人震惊的。
如果是这种情况,复制和粘贴解决方案肯定比键入新问题更容易,您可以使用以下内容:
library(rvest)
library(dplyr)
library(purrr)
map(1:3, function(col) {
html_nodes(doc, xpath=sprintf(".//tr/td[%d]", col)) %>%
map_chr(~paste0(html_nodes(., xpath=".//text()"), collapse=","))
}) %>%
set_names(sprintf("X%d", 1:3)) %>%
as_data_frame()
但是 - 足够惊人 - 如果你在TD
标签中有不同的标签和数据,或者必须使用更复杂的表格结构,此解决方案可能还需要适应。头脑,难以置信。
答案 1 :(得分:0)
我遇到了这个问题,因为X中的
被删除:
$headers = [
'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, DELETE',
'Access-Control-Allow-Credentials' => 'true',
'Access-Control-Max-Age' => '86400',
'Access-Control-Allow-Headers' => 'Content-Type, Authorization, X-Requested-With',
];
if ($request->isMethod('OPTIONS')) {
return response()->json('{"method":"OPTIONS"}', 200, $headers);
}
$response = $next($request);
foreach ($headers as $key => $value) {
$response->header($key, $value);
}
return $response;
我解决了以下问题:
xTabs <- XML::readHTMLTable(X)
如果我想要'
',则可以进行查找并替换为xTab。但是,我更喜欢'\ n'。