xml2js,属性名称包含连字符
问题描述:
使用xml2js解析XML文件,我需要检索的属性包含在其名称xml2js,属性名称包含连字符
<item cdr-id="1234">
<name>some text</name>
</item>
连字符。在这里我想点值检索cdr-id
,我已经有一个变量item
指向item元素。我已验证它指向正确的节点
console.log(item.name);
并且返回期望值some text
。但是,当我尝试
console.log(item.$.cdr-id);
我得到了完全合理的误差ReferenceError: id is not defined
(我一直更惊讶,如果id
不是作为一个单独的令牌处理)。
同样,
console.log(item.$."cdr-id");
获取消息SyntaxError: Unexpected string
。
投掷JSON.stringify周围
console.log(JSON.stringify(item.$));
揭示了原来的属性名称:{"cdr-id":"CDR0000040222"}
在首位的名字
由于没有连字符只是踢问题的道路一点。如果不这样做,看起来提供一个自定义属性名称处理器是要走的路,但是如果任何人必须更新此代码,那么这种“太聪明”可能会导致混淆。
有没有更好的方法来做到这一点?
答
不喜欢
console.log(item.$["cdr-id"]);
这奏效了。谢谢。我真的不想重写属性名称。 – ThatBlairGuy 2014-10-06 18:05:24
@ThatBlairGuy:没问题:) – mithunsatheesh 2014-10-06 18:06:47