Im having a small issue creating an XML output.
Each variable in my put statement, generates and blank after it (which it shouldnt!).
Heres a small sample code:
data _null_;
set step2 end=eof;
output;
file 'c:\Data.xml';
if _n_=1 then do;
put '<chart>';
end;
put '<set label="'visityearweek'" value="'count'"/>'; <----- PROBLEM!
if (eof=1) then do;
put '</chart>';
end;
run;
Current output:
<set label="2014-04 " value="2839 "/> <--- BLANKS after var..!
<set label="2014-05 " value="3232 "/>
<set label="2014-06 " value="2433 "/>
Anyone got an idea why this occurs? (i have tried to compress/strip the variables first without luck, theres no blanks in data).
Best
Kasper
Try
put '<set label="'visityearweek+(-1)'" value="'count+(-1)'"/>';
Richard
Issue not resolved.
Try
put '<set label="'visityearweek+(-1)'" value="'count+(-1)'"/>';
Richard
Thanks - thats the (though its not logic why needed) solution.
The put statement by default adds a delimiting space at the end of each variable printed so list output does not run everything together.
In this context the + is a pointer control, so +9 would move the pointer (the next printing position) 9 spaces further.
There is no '-' pointer control so if you need to move back one space you need to advance the pointer control by (-1).
An alternative would be to place your text and values explicitly using the @ pointer, but you might have to calculate the length of the count variable each time.
Richard
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.