Mirth channel XML:如何从元素内部读取多个值

Posted

技术标签:

【中文标题】Mirth channel XML:如何从元素内部读取多个值【英文标题】:Mirth channel XML : how to read multiple values from inside of an elements 【发布时间】:2021-10-22 02:43:39 【问题描述】:

如何从 Mirth Channel XML 的元素中读取值列表?如何读取多个相同类型的标签并分配给出站 XML 消息模板。

<patient>

<result>    
  <name>Name-1</name>
</result>


 <result>    
  <name>Name-2</name>
 </result>

<patient>

如果为 Names 定义了相同的值,则只需执行 msg['patient']['result']['name'] 将返回该值。但是,如果名称返回多个不同的名称,如何获取值?如何在同一个 XML 中迭代和显示?我是第一次做 Mirth,感谢任何帮助。

我看到了一个例子。

var nameLen = msg['result']['name'].length();
for(i=0;i<nameLen;i++)
// Your Mapping Logic
logger.debug(msg['result']['name'][i].toString());

但它不完整,如何在 Mirth Connect 中使用出站消息 XML 模板分配此 var 和循环?

请我在这方面需要任何人的帮助来解决这个问题。

谢谢

【问题讨论】:

只是为了确保 - 您可以编辑您的问题并在示例 xml 中添加第二个 &lt;patient&gt;(带有 Name-3 等)并显示您的预期输出吗? 我不会放第二个 因为那是根节点,在这种情况下它没有意义,但您应该共享您的出站模板和预期的输出,如以及您尝试过的任何无效操作。 见***.com/questions/68534547/…。如果您在查看后仍有疑问,则需要完善您的问题。 【参考方案1】:

对于 HL7 v3 消息,您需要在目标的 Transformers 选项卡中移动,并将出站模板定义为 HL7 v3。

当您循环获取一个值时,如果您打算将该值进一步用于出站模板,您可以通过将其放入 channelMap 来使用它,只需将其放入:

channelMap.put("name_of_your_key", "your_value");

并在出站模板中检索它:

channelMap.get("name_of_your_key");

【讨论】:

欢迎来到 Stack Overflow!请花点时间阅读editing help 中的help center。 Stack Overflow 上的格式与其他网站不同。

以上是关于Mirth channel XML:如何从元素内部读取多个值的主要内容,如果未能解决你的问题,请参考以下文章

如何从结构类似于Java的XML文件中获取特定元素

获取SQL Server中每个通道的Mirth使用的空间

元素内部文本的 XML 文件转换?

markdown 设置Mirth Connect进行生产

如何从动态对象中获取反序列化的 xml 属性

Mirth Connect 第一章 快速安装