2014-07-22 52 views
5

我試圖解析XML字符串,我得到一個錯誤無效字符實體解析XML

[Error: Invalid character entity 
Line: 0 
Column: 837 
Char: ] 

XML是否不喜歡括號?我是否需要用\\]之類的東西替換所有的括號。謝謝

+0

報告開頭[和結尾],壞性格是前右括號。減少你的XML文件,直到有幾行仍然存在這個問題,並將其添加到你的問題中。我們不知道你現在在做什麼。 –

+0

基本上這是os的一個json對象。我知道它必須是一些角色,因爲如果我通過一個不同的xml它的作品。所以它在XML中的東西。我希望我可以發佈xml但是它的敏感數據 – jrock2004

+0

大多數具有括號的xml看起來像是「訂單集限制 - 導航到任何產品A [TBD]」而沒有引號 – jrock2004

回答

6

好吧,無效的字符是短劃線和&。我固定它通過執行以下操作:

​​

感謝

+0

我左替換(/ [\ n \因爲性能的原因,r/g,'\\ n')。 – Smile4ever

1

使用的DOMParser會得到解決,一點都不串上每一個不容易被解析爲一個字符串的字符替換一個節點。如果你有大量的XML解析可能有不同的字符,這是特別有用的。

我會建議xmldom正如我與xml2js

合併使用看起來像成功地使用了下列文件:

var parseString = require('xml2js').parseString; 
var DOMParser = require('xmldom').DOMParser; 

var xmlString = "<test>some stuff </test>"; 
var xmlStringSerialized = new DOMParser().parseFromString(xmlString, "text/xml"); 
    parseString(context.xmlString, function (err, result) { 
     if (err) { 
      //did not work 
     } else { 
      //worked! use JSON.stringify() 
      var allDone = JSON.stringify(result); 
     } 
    });