2016-02-19 53 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