Mirth,转换入站xml文件的简单标记值

问题描述 投票:0回答:1

我想在以下情况下使用笑容:1.接收一个xml文件2.如果标签具有特定值,则更改标签的值3.出站生成的xml

所以我很高兴一个文件读取器入站连接器和一个文件写入器出站连接器。我如何转换此xml:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<R>
  <NDOSM />
  <NADM>20060552</NADM>
  <DATECONS>20200205</DATECONS>
  <PRODNR />
  <PRODUCTID>1602235</PRODUCTID>
  <PRODUCTDESC>relaxine compr. pellic. 500 mg</PRODUCTDESC>
  <QTY>1.0</QTY>
  <PARSTOCKID>ethilog</PARSTOCKID>
  <PRIX />
  <STUPNR />
  <MEDNR>16822372</MEDNR>
  <CODEIDENTIFICATION />
  <SERIALNO />
  <NOMARGE />
  <PATIENTNAME>CLINT</PATIENTNAME>
  <PATIENTLASTNAME>EASTWOOD</PATIENTLASTNAME>
  <DATEOFBIRTH>19420910</DATEOFBIRTH>
  <LOTNR />
  <SERVICE />
  <SERVICEDIST>160</SERVICEDIST>
  <KEYFROMPM>20200205163309_05604132</KEYFROMPM>
  <TYPEMOUVEMENT>PREDISPOSITION</TYPEMOUVEMENT>
  <ANNULATION>N</ANNULATION>
  <PARSTOCKID-DOTATION />
  <COMMENTAIREMVT />
</R>

在此一个

<?xml version="1.0" encoding="ISO-8859-1" ?>
<R>
  <NDOSM />
  <NADM>20060552</NADM>
  <DATECONS>20200205</DATECONS>
  <PRODNR />
  <PRODUCTID>1602235</PRODUCTID>
  <PRODUCTDESC>relaxine compr. pellic. 500 mg</PRODUCTDESC>
  <QTY>1.0</QTY>
  <PARSTOCKID>51</PARSTOCKID>
  <PRIX />
  <STUPNR />
  <MEDNR>16822372</MEDNR>
  <CODEIDENTIFICATION />
  <SERIALNO />
  <NOMARGE />
  <PATIENTNAME>CLINT</PATIENTNAME>
  <PATIENTLASTNAME>EASTWOOD</PATIENTLASTNAME>
  <DATEOFBIRTH>19420910</DATEOFBIRTH>
  <LOTNR />
  <SERVICE />
  <SERVICEDIST>160</SERVICEDIST>
  <KEYFROMPM>20200205163309_05604132</KEYFROMPM>
  <TYPEMOUVEMENT>PREDISPOSITION</TYPEMOUVEMENT>
  <ANNULATION>N</ANNULATION>
  <PARSTOCKID-DOTATION />
  <COMMENTAIREMVT />
</R>

仅当标记PARSTOCKID的值为ethilog时,我才必须更改入站xml。在这种情况下,我必须将ethilog替换为51。我尝试了几件事没有成功:(

谢谢

xml transformation mirth
1个回答
0
投票

道歉,而不是回答,但发表评论的时间太长,可能有助于您到达所需的位置。

取决于Mirth用来更改节点文本值的方法,此xpath表达式

 /R//PARSTOCKID[text()='ethilog'] 

应该选择名称为R且文本值为/PARSTOCKIDethilog的子节点;然后将文本更改方法直接应用于此子节点。

如果需要从父节点开始,则此xpath表达式

/R[//PARSTOCKID[text()='ethilog']]

应该选择具有其名称为R且其文本值为/PARSTOCKID的子代的任何ethilog节点。在这一点上(这只是一个疯狂的猜测...),您为选定的R节点分配了一些变量名称,然后按照

的方式进行了一些操作
my_var['PARSTOCKID']=51 (or maybe == "51"?)

再次,抱歉,我不能更具体,不熟悉Mirth,但如果能使您半途而废,那可能是值得的。

© www.soinside.com 2019 - 2024. All rights reserved.