2016-02-19 54 views
0

我正在使用XML软件包创建一个xml文件。默认情况下,功能saveXML缩进每个嵌套元素的空间。在XML R库中设置XML缩进

有没有办法将这个数量的空格设置为不同的空格,并且为每个级别缩进4个空格?

谢谢

回答

1

saveXML输出是一个字符串中的新行如此分裂,然后如果有N个前导空格与N *缩进前导空格替换它们。使用?saveXML

library(XML) 
library(gsubfn) 

xmlFormat <- function(doc, indent = 3) { 
    s <- strsplit(saveXML(doc), "\n")[[1]] 
    g <- gsubfn("^(+)", x ~ sprintf("%*s", indent * nchar(x), " "), s) 
    paste(g, collapse = "\n") 
} 

# test 

f <- system.file("exampleData", "test1.xml", package = "XML") 
doc <- xmlRoot(xmlTreeParse(f)) 

cat(xmlFormat(doc), "\n") 

作为例子来说明:

<?xml version="1.0"?> 
<test> 
    <a>Some text &lt; 3&gt;.</a> 
    <b>More text &gt; 3</b> 
</test> 
+0

它的工作原理。谢谢。还有我不熟悉的好库'gsubfn'。 – dmontaner