gpt4 book ai didi

sas - 如何在SAS代码中添加回车符?

转载 作者:行者123 更新时间:2023-12-03 00:11:40 25 4
gpt4 key购买 nike

我想在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>&#13;<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> &lt;termEntry id=1&gt;&lt;/termEntry&gt; </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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com