格式化saveXML输出以在R中保留树结构
我在R中生成了一个很长的xml文件,当我将最终的xml打印到控制台时,它保持了可视化的树结构,使输出易于阅读。但是,当我使用saveXML将其写入文件时,它会打印出一行巨大的数据。有人知道如何使用saveXML函数来打印此文件并维护多行树结构吗?我到处找,找不到解决办法 一个小玩具示例(代码取自): 但是当我使用格式化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
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")