格式化saveXML输出以在R中保留树结构

格式化saveXML输出以在R中保留树结构,r,xml,R,Xml,我在R中生成了一个很长的xml文件,当我将最终的xml打印到控制台时,它保持了可视化的树结构,使输出易于阅读。但是,当我使用saveXML将其写入文件时,它会打印出一行巨大的数据。有人知道如何使用saveXML函数来打印此文件并维护多行树结构吗?我到处找,找不到解决办法 一个小玩具示例(代码取自): 但是当我使用saveXML(xml,file=“~/Desktop/xml\u format\u test.xml”,compression=0,indent=TRUE,prefix='\n',do

我在R中生成了一个很长的xml文件,当我将最终的xml打印到控制台时,它保持了可视化的树结构,使输出易于阅读。但是,当我使用saveXML将其写入文件时,它会打印出一行巨大的数据。有人知道如何使用saveXML函数来打印此文件并维护多行树结构吗?我到处找,找不到解决办法

一个小玩具示例(代码取自):

但是当我使用
saveXML(xml,file=“~/Desktop/xml\u format\u test.xml”,compression=0,indent=TRUE,prefix='\n',doctype=NULL)
打印时,我得到了以下结构:

<?xml version="1.0"?>

<document>
  <row>
    <date>                          2007-02-01</date>
    <UYG.Open>71.32</UYG.Open>
    <UYG.High>71.34</UYG.High>
    <UYG.Low>71.32</UYG.Low>
    <UYG.Close>71.34</UYG.Close>
    <UYG.Volume>200</UYG.Volume>
    <UYG.Adjusted>69.23</UYG.Adjusted>
  </row>
  <row>
    <date>                          2007-02-02</date>
    <UYG.Open>72.2</UYG.Open>
    <UYG.High>72.2</UYG.High>
    <UYG.Low>72.2</UYG.Low>
    <UYG.Close>72.2</UYG.Close>
    <UYG.Volume>200</UYG.Volume>
    <UYG.Adjusted>70.06</UYG.Adjusted>
  </row>
  <row>
    <date>                          2007-02-05</date>
    <UYG.Open>71.76</UYG.Open>
    <UYG.High>71.76</UYG.High>
    <UYG.Low>71.76</UYG.Low>
    <UYG.Close>71.76</UYG.Close>
    <UYG.Volume>5100</UYG.Volume>
    <UYG.Adjusted>69.63</UYG.Adjusted>
  </row>
  <row>
    <date>                          2007-02-06</date>
    <UYG.Open>72.85</UYG.Open>
    <UYG.High>72.85</UYG.High>
    <UYG.Low>72.85</UYG.Low>
    <UYG.Close>72.85</UYG.Close>
    <UYG.Volume>3800</UYG.Volume>
    <UYG.Adjusted>70.69</UYG.Adjusted>
  </row>
  <row>
    <date>                          2007-02-07</date>
    <UYG.Open>72.85</UYG.Open>
    <UYG.High>72.85</UYG.High>
    <UYG.Low>72.85</UYG.Low>
    <UYG.Close>72.85</UYG.Close>
    <UYG.Volume>0</UYG.Volume>
    <UYG.Adjusted>70.69</UYG.Adjusted>
  </row>
</document>
<?xml version="1.0"?>
 <document>   <row>     <date>                          2007-02-01</date>     <UYG.Open>71.32</UYG.Open>     <UYG.High>71.34</UYG.High>     <UYG.Low>71.32</UYG.Low>     <UYG.Close>71.34</UYG.Close>     <UYG.Volume>200</UYG.Volume>     <UYG.Adjusted>69.23</UYG.Adjusted>   </row>   <row>     <date>                          2007-02-02</date>     <UYG.Open>72.2</UYG.Open>     <UYG.High>72.2</UYG.High>     <UYG.Low>72.2</UYG.Low>     <UYG.Close>72.2</UYG.Close>     <UYG.Volume>200</UYG.Volume>     <UYG.Adjusted>70.06</UYG.Adjusted>   </row>   <row>     <date>                          2007-02-05</date>     <UYG.Open>71.76</UYG.Open>     <UYG.High>71.76</UYG.High>     <UYG.Low>71.76</UYG.Low>     <UYG.Close>71.76</UYG.Close>     <UYG.Volume>5100</UYG.Volume>     <UYG.Adjusted>69.63</UYG.Adjusted>   </row>   <row>     <date>                          2007-02-06</date>     <UYG.Open>72.85</UYG.Open>     <UYG.High>72.85</UYG.High>     <UYG.Low>72.85</UYG.Low>     <UYG.Close>72.85</UYG.Close>     <UYG.Volume>3800</UYG.Volume>     <UYG.Adjusted>70.69</UYG.Adjusted>   </row>   <row>     <date>                          2007-02-07</date>     <UYG.Open>72.85</UYG.Open>     <UYG.High>72.85</UYG.High>     <UYG.Low>72.85</UYG.Low>     <UYG.Close>72.85</UYG.Close>     <UYG.Volume>0</UYG.Volume>     <UYG.Adjusted>70.69</UYG.Adjusted>   </row> </document>

2007-02-01     71.32     71.34     71.32     71.34     200     69.23                                     2007-02-02     72.2     72.2     72.2     72.2     200     70.06                                     2007-02-05     71.76     71.76     71.76     71.76     5100     69.63                                     2007-02-06     72.85     72.85     72.85     72.85     3800     70.69                                     2007-02-07     72.85     72.85     72.85     72.85     0     70.69    

我确实需要多行树格式的输出格式,以便于可视化,并帮助新用户理解输出。非常感谢您的帮助,因为我已经尝试了几个小时来寻找解决方案,但无法解决

您可以使用
文件
参数:


看起来此错误已被发现,但尚未修复。

好的,在进一步解决此问题后,我找到了一个可行的解决方案。使用
xmllint--format xml\u format\u test.xml
是可行的,但在R中不是一个解决方案。我仍然希望找到一个R固有的解决方案。
<?xml version="1.0"?>
 <document>   <row>     <date>                          2007-02-01</date>     <UYG.Open>71.32</UYG.Open>     <UYG.High>71.34</UYG.High>     <UYG.Low>71.32</UYG.Low>     <UYG.Close>71.34</UYG.Close>     <UYG.Volume>200</UYG.Volume>     <UYG.Adjusted>69.23</UYG.Adjusted>   </row>   <row>     <date>                          2007-02-02</date>     <UYG.Open>72.2</UYG.Open>     <UYG.High>72.2</UYG.High>     <UYG.Low>72.2</UYG.Low>     <UYG.Close>72.2</UYG.Close>     <UYG.Volume>200</UYG.Volume>     <UYG.Adjusted>70.06</UYG.Adjusted>   </row>   <row>     <date>                          2007-02-05</date>     <UYG.Open>71.76</UYG.Open>     <UYG.High>71.76</UYG.High>     <UYG.Low>71.76</UYG.Low>     <UYG.Close>71.76</UYG.Close>     <UYG.Volume>5100</UYG.Volume>     <UYG.Adjusted>69.63</UYG.Adjusted>   </row>   <row>     <date>                          2007-02-06</date>     <UYG.Open>72.85</UYG.Open>     <UYG.High>72.85</UYG.High>     <UYG.Low>72.85</UYG.Low>     <UYG.Close>72.85</UYG.Close>     <UYG.Volume>3800</UYG.Volume>     <UYG.Adjusted>70.69</UYG.Adjusted>   </row>   <row>     <date>                          2007-02-07</date>     <UYG.Open>72.85</UYG.Open>     <UYG.High>72.85</UYG.High>     <UYG.Low>72.85</UYG.Low>     <UYG.Close>72.85</UYG.Close>     <UYG.Volume>0</UYG.Volume>     <UYG.Adjusted>70.69</UYG.Adjusted>   </row> </document>
cat(saveXML(xml), file="~/Desktop/xml_format_test.xml")