html - 如何使用 R 将文本文件超链接到 HTML 文件中?
问题描述
我有一个 HTML 输出文件,并且该文件中有一个名为“描述”的列。当值为Report data does not match
.
所以,有专用的文本文件row no: 12, 16, 17, 18, 19, 20
,我想将它们链接到Description
列。
生成 HTML 文件的代码行是:
library(xtable)
extract1 <- result[,list(TestCaseID, breadcrumb, Discription),]
print(xtable(extract1), type = "html", file = "extracted.html")
如何进行文本文件的链接。如果问题需要任何修改,请告诉我。提前致谢!!!
解决方案
我建议您根据您的要求进行预处理。由于文本文件的名称稍后可能会更改,因此应将它们作为单独的列提供。
如果不需要文本文件链接,请考虑稍后对 NA 进行条件处理。
下面的示例基于一个主列表。文本文件位于子文件夹中。
诀窍是使用 HTML 标记href
并使用sanitize.text.function
如下所示的测试用例。
您需要在子文件夹中创建一些虚拟文本文件,例如gauge-D00.txt、gauge-D01.txt等,以尝试该示例。
# --------------------------------------------------------
# gauge main ID list
#---------------------------------------------------------
# ID,location,description,textfile
# D00,nature reserve,Otternhagener Moor,../gauge-D00.txt
# D01,nature reserve,Helstorfer Moor,../gauge-D01.txt
# FER,benchmark,Negenborner Weg,../gauge-FER.txt
#----------------------------------------------------------
# text files reside in /data-develop-text-file-link/
# ---------------------------------------------------------
library (xtable)
gaugelist <- structure(list(
ID = structure(1:3, .Label = c("D00", "D01", "FER"), class = "factor"),
location = structure(c(2L, 2L, 1L), .Label = c("benchmark", "nature reserve"), class = "factor"),
description = structure(c(3L, 1L, 2L), .Label = c("Helstorf", "Negenborn", "Otternhagen"), class = "factor"),
textfile = structure(c(2L, 3L, 1L), .Label = c("../gauge-FER.txt", "../gauge-D00.txt", "../gauge-D01.txt"), class = "factor")),
class = "data.frame", row.names = c(NA, -3L))
head(gaugelist)
# set HTML tag for linking to local file --------------------------------------------
gaugelist$description <- paste("<a href=", gaugelist$textfile, ">", gaugelist$description, "</a>")
head(gaugelist)
# remove textfile column from data.frame --------------
gaugelist$textfile <- NULL
head(gaugelist)
# print HTML table and sanitize by using your own function (add subfolder) ---------------------------------------
print(xtable(gaugelist), type = "html",
sanitize.text.function = function(str) gsub("..", "./data-develop-text-file-link", str, fixed = TRUE),
file = "gauge-list.html")
编辑:
./data-develop-text-file-link
使用.引用当前目录会稍微好一些./
。我对此进行了编辑以进行gsub
处理,但这没有什么区别。
我在上面的回答中描述的 HTML 和文本文件的结构,只是作为一种思想的示例性暗示,是基于网站结构的。HTML 表位于任何根节点,文本文件位于其下方的目录中。因此,以后可以将文件上传到服务器或将其留在本地 PC 上。
这就是我使用相对链接的原因,它适用于所有浏览器。
请注意,文本文件的绝对路径似乎是 Microsoft Edge 和 Internet Explorer 的问题。测试:用鼠标右键复制链接并将其粘贴到 Edge 的地址文本框中,文本文件将打开。在使用例如 C:\Users\%USERNAME%\Documents 或 D:_working\ 进行测试时,我找不到 Firefox 和 Chrome 的任何问题,例如:
# print HTML table and sanitize by using your own function (add subfolder) ---------------------------------------
print(xtable(gaugelist), type = "html",
sanitize.text.function = function(str) gsub("..", "file:///C:/Users/webma/Documents/data-develop-text-file-link", str, fixed = TRUE),
file = "gauge-list.html")
推荐阅读
- java - 为什么 .java 文件不能在 IDEA 中正确显示?
- c - 在手臂皮质上使用 GCC 引发对 __aeabi_fxxx 函数的长时间调用
- php - 如何获取yii2排序从低到高和从高到低的单独链接
- nativescript - Nativescript-Vue 问题与平移元素
- javascript - PostgreSQL 输出的时间戳格式与 Javascript 时间戳格式不同
- wget - wget 从网页中获取所有链接的文件
- ios - 如何在图表 ios 中设置自定义 x 轴 0 标签
- uitableview - 将行高设置为 0 swift 时,tableview 的最后一部分被打乱
- reactjs - React:提交表单后如何清除文件输入和数据输入字段?
- javascript - 如何按多个字段对值进行分组并按特定类型对其进行排序