我是新手,当我尝试将HL7转换成XML时,我是struggling.Suppose,我的HL7消息有重复的片段,就像ORM消息中的ORC一样,如何迭代。下面是我的代码:
tmp['Messages']['orderList']['order'][count]['provider']=msg['ORC'][count]['ORC.10']['ORC.10.1'].toString();
但是它抛出了一个错误:
`TypeError: Cannot read property "provider"` from undefined.
请帮助我继续下一步。
发布于 2020-02-28 18:44:27
它失败是因为您的count
比tmp['Messages']['orderList']['order']
返回的元素数多,所以它返回未定义的元素。简而言之,您需要向tmp['Messages']['orderList']
添加另一个order
节点,然后才能访问它。在看不到更多的代码、需求、出站模板等的情况下,很难说如何最好地做到这一点。大多数情况下,我首先构建节点,然后使用appendChild添加它。
一个简单的例子是:
var tmp = <xml>
<Messages>
<orderList />
</Messages>
</xml>;
var prov = 12345;
var nextOrder = <order>
<provider>{prov}</provider>
</order>;
tmp.Messages.orderList.appendChild(nextOrder);
在此之后,tmp
将如下所示:
<xml>
<Messages>
<orderList>
<order>
<provider>12345</provider>
</order>
</orderList>
</Messages>
</xml>
用于处理xml的技术称为e4x,它运行在Mozilla Rhino Javascript引擎上。这里有几个可能对你有帮助的资源。
https://developer.mozilla.org/en-US/docs/Archive/Web/E4X/Processing_XML_with_E4X
https://stackoverflow.com/questions/60434609
复制相似问题