我想在以下情况下使用笑容: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用来更改节点文本值的方法,此xpath表达式
/R//PARSTOCKID[text()='ethilog']
应该选择名称为R
且文本值为/PARSTOCKID
的ethilog
的子节点;然后将文本更改方法直接应用于此子节点。
如果需要从父节点开始,则此xpath表达式
/R[//PARSTOCKID[text()='ethilog']]
应该选择具有其名称为R
且其文本值为/PARSTOCKID
的子代的任何ethilog
节点。在这一点上(这只是一个疯狂的猜测...),您为选定的R
节点分配了一些变量名称,然后按照
my_var['PARSTOCKID']=51 (or maybe == "51"?)
再次,抱歉,我不能更具体,不熟悉Mirth,但如果能使您半途而废,那可能是值得的。