SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1442|回复: 0
打印 上一主题 下一主题

XML文档转化为SAS

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2012-5-28 06:28:14 | 只看该作者

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知道是什么原因。在此先表示感谢。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-5-6 09:27 , Processed in 0.084868 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表