Search code examples
xmlsasprocdatastep

Importing large XML file into SAS


I have a 5GB size XML data file and I need that imported to SAS. I am trying using libname and its still running and running

     libname in xml 'C:\Test\Datafile.xml';
     
      data want;
       set in.want;
      run;

Is there a better way to import this file?

Thanks


Solution

  • Method 1 - Which is what you are doing.

    libname myxml xml 'U:\XML\subjects.xml';
    libname dat 'U:\data\';
    data dat.subjects;
     set myxml.subjects;
    run;
    proc print data = dat.subjects noobs;
    run; 
    

    Method - 2 Using Proc copy

    libname myxml xml 'U:\XML\subjects.xml'; 
    libname dat 'U:\data\'; 
    
    proc copy in=myxml out=dat;
    run;
    

    Method 3 - Using xmlmap

    filename path 'U:\XML\path.xml';
    filename map 'U:\XML\path.map';
    libname path xml xmlmap=map;
    proc print data=path.ford noobs;
    run; 
    

    Method - 4 Using excel

    PROC IMPORT OUT=subjects DATAFILE="U:\subjects.xls" DBMS=xls;
     GETNAMES=yes;
    RUN;
    

    Everything in detail is available in this fantastic global forum paper.