sas program كيفية إضافة عودة النقل في رمز ساس؟



sas group (1)

أنا في الواقع مندهش قليلا أن تحصل

<body><termEntry ...

باستخدام ليبنام شمل. قد أميل إلى إنشاء شمل يدويا من خطوة داتا.

ليبنام شمل مع ستايل = جينيريك (الافتراضي) سوف ينتج مخرجات النموذج

<dsname>
   <columnname>column value</columnname>
</dsname>
<dsname>
   <columnname>column value</columnname>
</dsname>
..etc...

أي علامة واحدة <dsname> لكل سجل في ملف الإدخال الخاص بك مع علامة تحت كل متغير في مجموعة البيانات. من أجل أن ساس يمكن بعد ذلك قراءة النتيجة مرة أخرى في أنها سوف تفلت من أي قيمة، حتى إذا كان المتغير في مجموعة البيانات هو سلسلة ويحتوي على أي من الأحرف < ، & إتك فإنه لن "يخلط" شمل. لذلك في حالتك، حيث المتغير في مجموعة البيانات لديه قيمة شيء مثل

<termEntry id=1>...</termEntry>

ثم كنت أتوقع الإخراج من شمل اسم ليصبح شيئا مثل

<TEXT>
    <body> &lt;termEntry id=1&gt;&lt;/termEntry&gt; </body>
</TEXT

يبدو أن الخيارات إما لفهم كيفية استخدام شململاب مع شمل ليبنام من أجل إنشاء شمل تريد (قد لا يكون ممكنا اعتمادا على إصدار ساس لديك)، أو لإنشاء شمل يدويا باستخدام خطوة داتا:

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;

أريد إضافة عربة عودة \ لينبرياك \ لينفيد إلى رمز ساس، بحيث هناك عوائد في شمل الإخراج.

data test_JK_merge;
    length body $ 1500;
    set test_JK;
    body=strip(termEntry_st)||"&#13;"||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;

لقد حاولت طرقا مختلفة، مثل & # 13 ؛، 'OA'X، & # 10 ؛، <br ​​/> وما إلى ذلك ولكن أيا منها لم يعمل. هل يمكن لأي شخص أن يساعد؟

نتيجة فعلية:

<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>