从SAS创建XML文件时包括SAS宏变量

时间:2018-12-06 11:07:39

标签: xml sas

我正在SAS中创建一个xml文件,并希望使用宏变量替换put语句中的EveningTelePhoneNum,但似乎不喜欢它。查看示例代码:

0

2 个答案:

答案 0 :(得分:2)

如果您想这样做:

%let fieldname=EveningTelephoneNum ;
put '  <Contact>';
if (pi ne "")         then put '    <PersonalId>' pi   +(-1) '</PersonalId>';
if (&fieldname ne "") then put '    <&fieldname>' '. ' +(-1) '</&fieldname>';
put '  </Contact>';

那是行不通的,因为宏变量不会在单引号内解析。您可以尝试(未试用):

%let fieldname=EveningTelephoneNum ;
put '  <Contact>';
if (pi ne "")         then put '    <PersonalId>' pi   +(-1) '</PersonalId>';
if (&fieldname ne "") then put "    <&fieldname>" '. ' +(-1) "</&fieldname>";
put '  </Contact>';

但是我可能会误解您的问题。与使用PUT语句手动写入相比,创建XML文件的方法可能更简单。

答案 1 :(得分:1)

使用XML库引擎可以可靠而轻松地导出平面数据结构。

例如:

libname myxml XML "C:\Temp\sandbox.xml";

%let moneyvar = invoice;

data myxml.acura;
  set sashelp.cars;
  where make = "Acura";
  keep model &moneyvar;
run;

我使用了一个宏变量moneyvar(尽管完全没有必要)来模拟您问题中的EveningTelePhoneNum想法。