2014-10-06 99 views
0

使用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"}在首位的名字

由於沒有連字符只是踢問題的道路一點。如果不這樣做,看起來提供一個自定義屬性名稱處理器是要走的路,但是如果任何人必須更新此代碼,那麼這種「太聰明」可能會導致混淆。

有沒有更好的方法來做到這一點?

回答

1

不喜歡

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

這奏效了。謝謝。我真的不想重寫屬性名稱。 – ThatBlairGuy 2014-10-06 18:05:24

+0

@ThatBlairGuy:沒問題:) – mithunsatheesh 2014-10-06 18:06:47

相關問題