将 XML 从文件嵌入到 RMD
Embed XML from file into RMD
我有一个 XML 文件 (SOME.XML
),我想将其内容嵌入到 .RMD
文档中。
如果我满足于让 XML 直接位于 .RMD
中,我知道我可以简单地做:
```xml
---some xml here---
```
到目前为止我的尴尬尝试是:
```{xml code=readr::read_file('SOME.XML')}
```
...由于没有 XML 引擎而失败。
我也试过:
````{r results='asis'}
cat('```xml')
cat(readr::read_file('SOME.XML'))
cat('```')
````
...其中,虽然编织完成,但输出完全不正确。
这可能吗?(毫无疑问,这里有一些我遗漏的技巧!)
如果需要,我 可以 有一个预编织阶段,在随后传递 [=] 的修改版本之前替换 XML 文件的内容16=] 到 rmarkdown::render
。但是,如果可能的话,我想避免这种情况。
更新:
按照答案的建议使用 readLines
是在抱怨 ...incomplete final line found on 'SOME.XML'
。使用 readr::read_file()
可以避免这种情况。对于我的特定项目,我现在使用:
```xml
`r readr::read_file("SOME.XML")`
```
感谢@user2554330 的优雅解决方案!
这是一种方法:
```xml
`r paste(readLines("SOME.XML"), collapse = "\n")`
```
想法是将 XML 放入内联 R 代码中。我认为 knitr 忽略了块包装器,因为它们不是它寻找的 {xml ...
格式,但它会看到内联代码并展开它。然后 Pandoc 将处理格式化。
以下是修改方法以使其发挥作用的方法:
````{r results='asis', echo = FALSE}
cat('```xml\n')
cat(readr::read_file('SOME.XML'), sep = "\n")
cat('\n```\n')
````
我有一个 XML 文件 (SOME.XML
),我想将其内容嵌入到 .RMD
文档中。
如果我满足于让 XML 直接位于 .RMD
中,我知道我可以简单地做:
```xml
---some xml here---
```
到目前为止我的尴尬尝试是:
```{xml code=readr::read_file('SOME.XML')}
```
...由于没有 XML 引擎而失败。
我也试过:
````{r results='asis'}
cat('```xml')
cat(readr::read_file('SOME.XML'))
cat('```')
````
...其中,虽然编织完成,但输出完全不正确。
这可能吗?(毫无疑问,这里有一些我遗漏的技巧!)
如果需要,我 可以 有一个预编织阶段,在随后传递 [=] 的修改版本之前替换 XML 文件的内容16=] 到 rmarkdown::render
。但是,如果可能的话,我想避免这种情况。
更新:
按照答案的建议使用 readLines
是在抱怨 ...incomplete final line found on 'SOME.XML'
。使用 readr::read_file()
可以避免这种情况。对于我的特定项目,我现在使用:
```xml
`r readr::read_file("SOME.XML")`
```
感谢@user2554330 的优雅解决方案!
这是一种方法:
```xml
`r paste(readLines("SOME.XML"), collapse = "\n")`
```
想法是将 XML 放入内联 R 代码中。我认为 knitr 忽略了块包装器,因为它们不是它寻找的 {xml ...
格式,但它会看到内联代码并展开它。然后 Pandoc 将处理格式化。
以下是修改方法以使其发挥作用的方法:
````{r results='asis', echo = FALSE}
cat('```xml\n')
cat(readr::read_file('SOME.XML'), sep = "\n")
cat('\n```\n')
````