我想在SAS代码中添加回车符\换行符\换行符,这样输出的xml中就有回车符。
data test_JK_merge;
length body $ 1500;
set test_JK;
body=strip(termEntry_st)||" "||strip(TS_Status)||strip(langset_en_st)||strip(nttG)||strip(langset_en_ed)||strip(termEntry_ed);
/*merged=strip(termEntry_st)||"'0A'X"||strip(TS_Status)||"<br />"||strip(langset_en_st)||"<br />"||strip(nttG)||"<br />"||strip(langset_en_ed)||"<br />"||strip(termEntry_ed);*/
keep body;
run;
libname outxml xml "U:\Projects\...\test2.mtf.xml";
data outxml.text;
set test_JK_merge;
run;
我尝试过不同的方法,例如
、'OA'X、
、
等
但它们都不起作用。有人可以帮忙吗?
实际结果:
<TEXT>
<body><termEntry id=1> <note type="TS_Status">ELC TERM present in OCS_Help_xml OCS_properties</note><langSet lang="eng-us">ntig><termGrp><term>ARM</term></termGrp></ntig></langSet></termEntry></body>
</TEXT>
预期结果:
<TEXT>
<body><termEntry id=1>
<note type="TS_Status">ELC TERM present in OCS_Help_xml OCS_properties</note><langSet lang="eng-us">ntig><termGrp><term>ARM</term></termGrp></ntig></langSet></termEntry></body>
</TEXT>
最佳答案
事实上,我对你得到的结果感到有点惊讶
<body><termEntry ...
通过使用 LIBNAME XML。我可能倾向于从 DATA 步骤手动生成 XML。
带有 style=generic(默认)的 LIBNAME XML 将生成表单的输出
<dsname>
<columnname>column value</columnname>
</dsname>
<dsname>
<columnname>column value</columnname>
</dsname>
..etc...
即一个标签<dsname>
对于输入文件中的每条记录,其下都有一个针对数据集中的每个变量的标签。为了使 SAS 能够读回结果,它将转义任何值,因此,如果数据集中的变量是字符串并包含任何字符 <
, &
等等,它不会“混淆”XML。因此,在您的情况下,数据集中的变量具有类似的值
<termEntry id=1>...</termEntry>
然后我希望 libname XML 的输出类似于
<TEXT>
<body> <termEntry id=1></termEntry> </body>
</TEXT
这些选项似乎要么了解如何使用 XMLMap 和 LIBNAME XML 来生成您想要的 XML(根据您拥有的 SAS 版本,可能无法生成),要么使用 DATA 手动生成 XML步骤:
data test_JK;
termEntry_st = "<termEntry id=1>";
termEntry_ed = "</termEntry>";
TS_Status = "<note type='TS_Status'>ELC TERM present in OCS_Help_xml OCS_properties</note>";
langset_en_st = "<langSet lang='eng-us'>";
langset_en_ed = "</langSet>";
nttG = "<ntig><termGrp><term>ARM</term></termGrp></ntig>";
data _null_;
set test_JK end=e;
file "tmp.xml";
if _n_ eq 1 then do;
put "<something>";
end;
put " <text>";
put " <body>" +(-1) termEntry_st;
put TS_Status +(-1) langset_en_st +(-1) nttG +(-1) langset_en_ed +(-1) termEntry_ed + (-1) "</body>";
put " </text>";
if e then do;
put "</something>";
end;
run;
关于sas - 如何在SAS代码中添加回车符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5415013/