print.xtable 打乱 html 标签
print.xtable messing up html tags
我在使用 print.xtable
将 html table 插入另一个 table 时遇到困难。
DF=data.frame(A=c("a","b"),B=c("This is a text
<table border=1>
<tr> <th> </th> <th> x </th> <th> error </th> </tr>
<tr> <td align=\"right\"> 1 </td> <td> element1 </td> <td> thing1 </td> </tr>
<tr> <td align=\"right\"> 2 </td> <td> element2 </td> <td> thing2 </td> </tr>
<tr> <td align=\"right\"> 3 </td> <td> element3 </td> <td> thing3 </td> </tr>
</table>","ok"))
这似乎工作正常:(内部 table 的 html 标签类似于外部 table 的 html 标签)
xtable(DF,digits=2)
但 print.xtable(xtable(DF,digits=2), type="html")
正在将内部 table 标签转换为 <
和 >
:
<!-- html table generated in R 3.1.2 by xtable 1.7-4 package -->
<!-- Mon Feb 16 05:55:32 2015 -->
<table border=1>
<tr> <th> </th> <th> A </th> <th> B </th> </tr>
<tr> <td align="right"> 1 </td> <td> a </td> <td> This is a text
<table border=1>
<tr> <th> </th> <th> x </th> <th> error </th> </tr>
<tr> <td align="right"> 1 </td> <td> element1 </td> <td> thing1 </td> </tr>
<tr> <td align="right"> 2 </td> <td> element2 </td> <td> thing2 </td> </tr>
<tr> <td align="right"> 3 </td> <td> element3 </td> <td> thing3 </td> </tr>
</table> </td> </tr>
<tr> <td align="right"> 2 </td> <td> b </td> <td> ok </td> </tr>
</table>
因此我的问题是:有没有办法确保所有标签都完好无损?
问题是默认 sanitize.text.function
正在更改 html 标签。您可以尝试将其重置为不会更改任何内容的函数(将其设置为 NULL
将调用默认值:
print.xtable(xtable(DF,digits=2), type="html",sanitize.text.function=function(x){x})
我在使用 print.xtable
将 html table 插入另一个 table 时遇到困难。
DF=data.frame(A=c("a","b"),B=c("This is a text
<table border=1>
<tr> <th> </th> <th> x </th> <th> error </th> </tr>
<tr> <td align=\"right\"> 1 </td> <td> element1 </td> <td> thing1 </td> </tr>
<tr> <td align=\"right\"> 2 </td> <td> element2 </td> <td> thing2 </td> </tr>
<tr> <td align=\"right\"> 3 </td> <td> element3 </td> <td> thing3 </td> </tr>
</table>","ok"))
这似乎工作正常:(内部 table 的 html 标签类似于外部 table 的 html 标签)
xtable(DF,digits=2)
但 print.xtable(xtable(DF,digits=2), type="html")
正在将内部 table 标签转换为 <
和 >
:
<!-- html table generated in R 3.1.2 by xtable 1.7-4 package -->
<!-- Mon Feb 16 05:55:32 2015 -->
<table border=1>
<tr> <th> </th> <th> A </th> <th> B </th> </tr>
<tr> <td align="right"> 1 </td> <td> a </td> <td> This is a text
<table border=1>
<tr> <th> </th> <th> x </th> <th> error </th> </tr>
<tr> <td align="right"> 1 </td> <td> element1 </td> <td> thing1 </td> </tr>
<tr> <td align="right"> 2 </td> <td> element2 </td> <td> thing2 </td> </tr>
<tr> <td align="right"> 3 </td> <td> element3 </td> <td> thing3 </td> </tr>
</table> </td> </tr>
<tr> <td align="right"> 2 </td> <td> b </td> <td> ok </td> </tr>
</table>
因此我的问题是:有没有办法确保所有标签都完好无损?
问题是默认 sanitize.text.function
正在更改 html 标签。您可以尝试将其重置为不会更改任何内容的函数(将其设置为 NULL
将调用默认值:
print.xtable(xtable(DF,digits=2), type="html",sanitize.text.function=function(x){x})