2014-07-22 9 views
5

मैं xml का स्ट्रिंग पार्स करने की कोशिश कर रहा हूँ और मैं एक त्रुटिअमान्य वर्ण इकाई पार्स एक्सएमएल

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

एक्सएमएल कोष्ठक पसंद नहीं है मिल रहा है? क्या मुझे सभी ब्रैकेट को \\] जैसे किसी चीज़ से प्रतिस्थापित करने की आवश्यकता है। धन्यवाद

+0

रिपोर्ट के साथ शुरू होता है [और साथ समाप्त होता है], बुरा चरित्र से पहले है बंद ब्रैकेट। अपनी एक्सएमएल फ़ाइल को तब तक कम करें जब तक कि यह कुछ पंक्तियां न हों, जिनके पास अभी भी समस्या है, और इसे अपने प्रश्न में जोड़ें। हमें नहीं पता कि आप अभी क्या कर रहे हैं। –

+0

मूल रूप से यह एक जेसन ऑब्जेक्ट का हिस्सा है। मुझे पता है कि यह कुछ चरित्र होना चाहिए क्योंकि अगर मैं एक अलग एक्सएमएल में गुजरता हूं तो यह काम करता है। तो यह एक्सएमएल में कुछ है। काश मैं एक्सएमएल पोस्ट कर सकता हूं लेकिन इसका संवेदनशील डेटा – jrock2004

+0

ब्रैकेट वाले अधिकांश एक्सएमएल में कुछ दिखता है, "ऑर्डर सेट सीमा- उद्धरण के बिना किसी भी उत्पाद ए [टीबीडी] पर जाएं" – jrock2004

उत्तर

6

ठीक है, अमान्य चरित्र डैश था और & था। मैं निम्न कार्य करके यह तय:

xml = data.testSteps.replace(/[\n\r]/g, '\\n') 
        .replace(/&/g,"&") 
        .replace(/-/g,"-"); 

धन्यवाद

+0

मैंने प्रतिस्थापित किया (/ [\ n \ आर]/जी, '\\ एन') प्रदर्शन कारणों से बाहर। – Smile4ever

1

एक नोड domparser एक स्ट्रिंग हर चरित्र है कि आसानी से एक स्ट्रिंग के रूप में पार्स नहीं कर रहा है पर जगह ले क्या करने वाले चारों ओर हो जाएगा का उपयोग करना। यह विशेष रूप से उपयोगी होता है यदि आपके पास पार्स करने के लिए बड़ी मात्रा में एक्सएमएल है जिसमें अलग-अलग वर्ण हो सकते हैं।

मैं 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); 
     } 
    }); 
संबंधित मुद्दे