【问题标题】:How to correctly escape XML special characters in an Rmarkdown document?如何正确转义 Rmarkdown 文档中的 XML 特殊字符?
【发布时间】:2021-06-15 16:27:07
【问题描述】:

我正在尝试呈现包含 XML 特殊字符的 Rmarkdown 文档,例如 <>。如果我将它们保留为纯文本,它们会被解释为 XML 并导致渲染中断。

我试过像>< 一样转义它们,但它们只是按原样呈现而没有转换成人字形。我也尝试过使用像 <![CDATA[>]]> 这样的 cdata 部分,但它只会呈现像 ]]> 这样的效果。

如何对它们进行编码,以便它们呈现为正常的人字形 < >

【问题讨论】:

  • 如何使用\,即\<\>
  • 我在 read_xml.raw(charToRaw(enc2utf8(x)), "UTF-8", ..., as_html = as_html, 中得到 ` 错误:名称 doi:10.1002 不符合 XML 命名空间 [ 202]`
  • 它在我的电脑上工作。您正在渲染什么类型的文档?
  • 将 .Rmd 渲染成 HTML
  • 我不能使用“\

标签: r xml r-markdown knitr


【解决方案1】:

如果您从脚本渲染 markdown,您可以首先使用 '# 用于将渲染为文本的 cmets。然后您可以在该评论中正常写markdown。

#' ---
#' title: "Test 2"
#' output: html_document
#' ---
#' 
#' \< Example sequence \>
0:10

我将其保存为 test.R 并渲染:

rmarkdown::render("test.R")

看起来像这样:

【讨论】:

  • 我不太确定我能做到这一点 - 我有一个模板 Report.Rmd,然后在另一个脚本中我正在做 input_text input_text 中的&lt; 换成\&lt; 而不会抱怨?
  • &lt; 来自报告还是您的 R 脚本?您可以尝试制作一个最小的可重现示例
【解决方案2】:

你不能把它放在一个 R 块中吗?您没有具体说明 XML 在文档中的位置或它的功能。请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    • 2012-08-06
    • 2014-05-11
    • 1970-01-01
    相关资源
    最近更新 更多