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



我想在以下情况下使用mirth: 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。 我尝试了几件事但没有成功:(

谢谢

这很简单,可以在mirth 中使用 javascript 步骤。

if (msg.PARSTOCKID.toString() == 'ethilog') {
msg.PARSTOCKID = '51';
}

很抱歉发布的内容与其说是答案,不如说是评论,但评论太长了,它可能会帮助您到达您想要的地方。

根据 Mirth 用于更改节点文本值的方法,此 xpath 表达式

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

应选择名为/PARSTOCKID的文本值为ethilogR的子节点;然后将文本更改方法直接应用于此子节点。

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

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

应选择具有名为/PARSTOCKID的子节点的任何R节点,该子节点本身的文本值为ethilog。在这一点上(这只是一个疯狂的猜测......(,你为选定的R节点分配一些变量名称,然后你做一些事情,就像

my_var['PARSTOCKID']=51 (or maybe == "51"?)

再说一次,对不起,我不能更具体,不熟悉Mirth,但如果它让你成功了一半,那可能是值得的。

最新更新