将XML文件上载到SAS

时间:2015-02-22 23:35:07

标签: xml xml-parsing sas

我正在尝试将XML中的stackexchange数据转储上传到SAS。 它采用这种特殊格式。

     <?xml version="1.0" encoding="UTF-8"?>
        -<votes>
        <row CreationDate="2013-10-22T00:00:00.000" VoteTypeId="2" PostId="4" Id="1"/>
        <row CreationDate="2013-10-22T00:00:00.000" VoteTypeId="16" PostId="1" Id="2"/> 
        <row CreationDate="2013-10-22T00:00:00.000" VoteTypeId="2" PostId="1" Id="3"/>
        </votes>

我尝试在SAS中使用默认的XML解析脚本,如xml和xml92,但导入失败。

libname Stackof xml 'C:\Users\abc\Documents\My SAS Files\Stackof\Votes.xml';   
libname Stack 'C:\Users\abc\Documents\My SAS Files\Stack';  
data stack.votes;    
set stackof.votes;         
run;

我能够在Excel中打开较小的文件,将它们转换为CSV然后上传它们,但是对于大文件(邮件大约29 GB和堆栈溢出的投票数据),最好的方法是什么。< / p>

1 个答案:

答案 0 :(得分:1)

要导入这样的XML文件,首先应创建一个XML Map。有关该主题,请参阅SAS Documentation。您可以手动创建地图(我之前已经多次完成),或者您可以使用与SAS捆绑或可单独下载的XML Map实用程序。确保为SAS版本制作正确的地图版本,因为更高版本的SAS支持更复杂的地图。

地图基本上告诉SAS什么定义数据集,什么是行,什么是列,以及每列的数据类型。这让SAS知道什么在哪里,否则它不知道放在哪里。