使用Batch脚本将新标记添加到XML

时间:2017-01-30 00:13:24

标签: xml

我正在尝试在现有标记之后添加新的XML标记ClaimAdminClaimNum>000114700002</ClaimAdminClaimNum> 以下XML代码中的<MPN_OPT_OUT_TERM_DATE/>

新ClaimAdminClaimNum标记中的新值000114700002应与另一个现有标记中的值相同 <CLAIM_NUM>0001147-00002</CLAIM_NUM>但没有连字符。

请参阅以下代码,并告知您的建议。

当前的XML代码:

 <?xml version="1.0" encoding="UTF-8"?>
 -<dataroot>
  -<Standard_x0020_Claim>

   <CLAIM_LOAD_TYPE_INDICATOR>U</CLAIM_LOAD_TYPE_INDICATOR>
   <PATIENT_LOAD_TYPE_INDICATOR>U</PATIENT_LOAD_TYPE_INDICATOR>
   <PATIENT_ID_NUM>431586385</PATIENT_ID_NUM>
   <LAST_NAME>BACON</LAST_NAME>
   <CLAIM_NUM>0001147-00002</CLAIM_NUM>
   <PATIENT_NOTES_LENGTH/>
   <JURIS_CLAIM_NUMBER/>
   <MPN_OPT_OUT_EFF_DATE/>
   <MPN_OPT_OUT_TERM_DATE/>

  </Standard_x0020_Claim>"

预期的XML:

<?xml version="1.0" encoding="UTF-8"?>
-<dataroot>
-<Standard_x0020_Claim>

  <CLAIM_LOAD_TYPE_INDICATOR>U</CLAIM_LOAD_TYPE_INDICATOR>
  <PATIENT_LOAD_TYPE_INDICATOR>U</PATIENT_LOAD_TYPE_INDICATOR>
  <PATIENT_ID_NUM>431586385</PATIENT_ID_NUM>
  <LAST_NAME>BACON</LAST_NAME>
  <CLAIM_NUM>0001147-00002</CLAIM_NUM>
  <PATIENT_NOTES_LENGTH/>
  <JURIS_CLAIM_NUMBER/>
  <MPN_OPT_OUT_EFF_DATE/>
  <MPN_OPT_OUT_TERM_DATE/>
  <ClaimAdminClaimNum>000114700002</ClaimAdminClaimNum>

 </Standard_x0020_Claim>"

1 个答案:

答案 0 :(得分:0)

使用支持XML的工具修改XML。例如,在xsh中,您可以写:

open file.xml ;
my $claim_num = xsh:subst(/dataroot/Standard_x0020_Claim/CLAIM_NUM, '-', '') ;
my $new := insert element ClaimAdminClaimNum
                  after /dataroot/Standard_x0020_Claim/MPN_OPT_OUT_TERM_DATE ;
set $new/text() $claim_num ;

save :b ;