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
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 16. Read more here about why you should contribute and what is in it for you!
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.