SAS中文论坛
标题:
XML文档转化为SAS
[打印本页]
作者:
shiyiming
时间:
2012-5-28 06:28
标题:
XML文档转化为SAS
现有一个XML文档如下(原文档有977列数据,几千行):
<?xml version="1.0" encoding="UTF-8"?>
<accounts>
<account>
<companyID>1515</companyID>
<a>247672</a>
<b>16</b>
<c>45</c>
<d>17</d>
<date>2009-12-31</date>
</account>
</accounts>
非自动生成MAP后如下(之所以非自动生成,是因为自动生成后,所有的数值型数据全部被生成了字符型):
<?xml version="1.0" encoding="UTF-8"?>
<!-- ############################################################ -->
<!-- -->
<!-- SAS XML Libname Engine Map -->
<!-- Generated by XML Mapper, 902000.3.6.20090116170000_v920 -->
<!-- ############################################################ -->
<!-- ### Validation report ### -->
<!-- ############################################################ -->
<!-- XMLMap validation completed successfully. -->
<!-- ############################################################ -->
<SXLEMAP name="account" version="1.9">
<!-- ############################################################ -->
<TABLE name="account">
<TABLE-PATH syntax="XPath">/accounts/account</TABLE-PATH>
<COLUMN name="companyID">
<PATH syntax="XPath">/accounts/account/companyID</PATH>
<TYPE>numeric</TYPE>
<DATATYPE>integer</DATATYPE>
</COLUMN>
<COLUMN name="a">
<PATH syntax="XPath">/accounts/account/a</PATH>
<TYPE>numeric</TYPE>
<DATATYPE>integer</DATATYPE>
</COLUMN>
<COLUMN name="b">
<PATH syntax="XPath">/accounts/account/b</PATH>
<TYPE>numeric</TYPE>
<DATATYPE>integer</DATATYPE>
</COLUMN>
<COLUMN name="c">
<PATH syntax="XPath">/accounts/account/c</PATH>
<TYPE>numeric</TYPE>
<DATATYPE>integer</DATATYPE>
</COLUMN>
<COLUMN name="d">
<PATH syntax="XPath">/accounts/account/d</PATH>
<TYPE>numeric</TYPE>
<DATATYPE>integer</DATATYPE>
</COLUMN>
<COLUMN name="date">
<PATH syntax="XPath">/accounts/account/date</PATH>
<TYPE>numeric</TYPE>
<DATATYPE>date</DATATYPE>
<FORMAT width="10">IS8601DA</FORMAT>
<INFORMAT width="10">IS8601DA</INFORMAT>
</COLUMN>
</TABLE>
</SXLEMAP>
所用SAS程序:
filename comp 'C:\Daten\account.xml';
filename cmap 'C:\Daten\account.map';
libname comp xml xmlmap=cmap;
data account; set comp.account; run;
生成SAS后, 原始数据的977列约有十几列的数值全部是缺省值。查看原始XML数据,发现这十几列中每列都有几行并非缺省。即使用了XML92(即把程序的第三行改为:libname comp xml92 xmlmap=cmap;
)结果也是一样。
哪位EXPERT知道是什么原因。在此先表示感谢。
欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/)
Powered by Discuz! X3.2