xml2js,属性名称包含连字符

时间:2014-10-06 17:33:23

标签: javascript node.js

使用xml2js解析XML文件,我需要检索名称中包含连字符的属性的值

<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"}

首先在名称中没有连字符只是将问题推到了路上。如果做不到这一点,看起来提供一个自定义的属性名称处理器是可行的方法,但这样做太过于聪明了#34;如果有人必须更新此代码,可能会产生混淆。

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

喜欢

console.log(item.$["cdr-id"]);