Mirth Connect中如何批量删除XML标签的所有属性?
Mirth Connect中如何批量删除XML标签的所有属性?
嘿,这个问题我熟!在Mirth Connect里完全不用一个个手动写delete语句来删属性,有个通用方法能批量清空指定XML标签的所有属性,刚好解决你要处理所有可能属性的需求~
先回顾下你的场景:你有这样的XML标签
<code nullFlavor="UNK" xsi:type="CD">
想要批量删掉所有属性,变成
<code/>
直接用下面这段代码就可以实现:
// 先获取你要处理的目标节点 var targetNode = msg['code']; // 获取该节点的所有属性名称数组 var allAttributes = targetNode.getAttributes(); // 遍历所有属性,逐个删除 for (var i = 0; i < allAttributes.length; i++) { delete targetNode['@' + allAttributes[i]]; }
给你解释下这段代码的逻辑:
- Mirth里的
msg对象对应解析后的XML节点树,msg['code']就能拿到你要处理的<code>节点 - 调用节点的
getAttributes()方法,会返回这个节点所有属性的名称组成的数组,不管属性叫什么名字都会被捞出来 - 最后循环这个数组,用Mirth的属性访问语法(
@+属性名)配合delete操作符,就能把所有属性一次性删干净
这样不管这个<code>节点以后会出现什么新的属性,这段代码都能自动处理,完全不用你手动去维护属性列表~
备注:内容来源于stack exchange,提问作者Johnny T
相关产品推荐
相关产品推荐

