📁 File Manager Pro
v10.0.3 | PHP: 8.2.31
Server: LiteSpeed
2026-06-29 13:19:11
📂
/ (Root)
/
home
/
orkouolp
/
nodevenv
/
node_js
/
orkofarms.com
/
18
/
lib
/
node_modules
/
fast-xml-parser
/
src
/
v5
📍 /home/orkouolp/nodevenv/node_js/orkofarms.com/18/lib/node_modules/fast-xml-parser/src/v5
🔄 Refresh
✏️
Editing: XMLParser.js
Writable
const { buildOptions} = require("./OptionsBuilder"); const Xml2JsParser = require("./Xml2JsParser"); class XMLParser{ constructor(options){ this.externalEntities = {}; this.options = buildOptions(options); // console.log(this.options) } /** * Parse XML data string to JS object * @param {string|Buffer} xmlData * @param {boolean|Object} validationOption */ parse(xmlData){ if(Array.isArray(xmlData) && xmlData.byteLength !== undefined){ return this.parse(xmlData); }else if( xmlData.toString){ xmlData = xmlData.toString(); }else{ throw new Error("XML data is accepted in String or Bytes[] form.") } // if( validationOption){ // if(validationOption === true) validationOption = {}; //validate with default options // const result = validator.validate(xmlData, validationOption); // if (result !== true) { // throw Error( `${result.err.msg}:${result.err.line}:${result.err.col}` ) // } // } const parser = new Xml2JsParser(this.options); parser.entityParser.addExternalEntities(this.externalEntities); return parser.parse(xmlData); } /** * Parse XML data buffer to JS object * @param {string|Buffer} xmlData * @param {boolean|Object} validationOption */ parseBytesArr(xmlData){ if(Array.isArray(xmlData) && xmlData.byteLength !== undefined){ }else{ throw new Error("XML data is accepted in Bytes[] form.") } const parser = new Xml2JsParser(this.options); parser.entityParser.addExternalEntities(this.externalEntities); return parser.parseBytesArr(xmlData); } /** * Parse XML data stream to JS object * @param {fs.ReadableStream} xmlDataStream */ parseStream(xmlDataStream){ if(!isStream(xmlDataStream)) throw new Error("FXP: Invalid stream input"); const orderedObjParser = new Xml2JsParser(this.options); orderedObjParser.entityParser.addExternalEntities(this.externalEntities); return orderedObjParser.parseStream(xmlDataStream); } /** * Add Entity which is not by default supported by this library * @param {string} key * @param {string} value */ addEntity(key, value){ if(value.indexOf("&") !== -1){ throw new Error("Entity value can't have '&'") }else if(key.indexOf("&") !== -1 || key.indexOf(";") !== -1){ throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '
'") }else if(value === "&"){ throw new Error("An entity with value '&' is not permitted"); }else{ this.externalEntities[key] = value; } } } function isStream(stream){ if(stream && typeof stream.read === "function" && typeof stream.on === "function" && typeof stream.readableEnded === "boolean") return true; return false; } module.exports = XMLParser;
💾 Save Changes
❌ Cancel