Tag: xml2js

用xml2jsparsing

我是node.js新手,需要parsingXML 。 在JS中,我只是使用DOMParser并使用getElementsByTagName来获取我想要的值。 我刚刚切换到节点,并正在使用xml2js (愿意考虑替代品)。 我一直无法弄清楚如何parsing通过响应得到我所期待的。 代码如下: function parseBody(body){ var parseString = require('xml2js').parseString; var xml = body parseString(xml, function (err, result) { console.dir(result); }); 这里是传递给函数的XML: <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:int=\"realURLHere"> <soapenv:Header/> <soapenv:Body> <int:readResponse> <response> <request>?</request> <cust> <fName>?</fName> </cust> </response> </int:readResponse> </soapenv:Body> </soapenv:Envelope> 这是我的function的输出: { 'soapenv:Envelope': { '$': { 'xmlns:soapenv': 'http://schemas.xmlsoap.org/soap/envelope/', 'xmlns:int': 'realURLHere' }, 'soapenv:Body': [ [Object] ] […]

Node.js xml2jsparsing器未定义

所有, 我想通过xml2jsparsing一个HTTP响应XML,并运行到一个错误。 我试图按照这些说明: https : //programmerblog.net/parse-xml-using-nodejs/ 我已经安装了模块,似乎正常运行。 我得到的错误。 parser.parseString(soapreplyx, function (err, result) { ^ ReferenceError: parser is not defined 我的应用程序代码如下所示。 // APP – INCLUDE const express = require('express') const path = require("path") const bodyParser = require("body-parser") const hbs = require('hbs') var xml2js = require('xml2js'); var parser = new xml2js.Parser(); // APP – DEFINITION const app […]

问题与parsing使用xml2js

我有一个XML标签名称包含冒号(:)它看起来像这样: <samlp:Response> data </samlp:Response> 我正在使用下面的代码来parsing这个XML到JSON,但不能使用它,因为标签名称包含冒号。 var xml2js = require('xml2js'); var parser = new xml2js.Parser(); var fs = require('fs'); fs.readFile( filePath, function(err,data){ if(!err){ parser.parseString(data, function (err, result) { //Getting a linter warning/error at this point console.log(result.samlp:Response); }); }else{ callback('error while parsing assertion'+err); } } ); }; 错误: events.js:161 throw er; // Unhandled 'error' event ^ TypeError: […]

如何从ES6中的parsing器中获得xml2js结果?

我正在Node中构build一个服务器,它将search一个文件夹以查看XML文件是否存在(glob),如果存在,请将(fs)中的文件作为JSON对象(xml2js)读取,并最终将其存储在数据库中某处。 我想要得到分析器的结果OUT到另一个variables,所以我可以用数据做其他事情。 据我所知,有些东西是同步运行的,但是我不知道如何阻止它,并且让我等待,直到它完成继续前进。 我将我的function从app.js分离到其他地方的控制器: app.controller.js const fs = require('fs-extra'); const glob = require('glob'); const xml2js = require('xml2js'); exports.requests = {}; exports.checkFileDrop = async () => { console.log('Checking for xml in filedrop…'); // this is the only place await works… await glob('./filedrop/ALLREQUESTS-*.xml', (err, files) => { var parser = new xml2js.Parser(); // this is looking for […]

如何在redux行动中实现承诺

如何在redux动作中首先进行api调用,然后调度GET_TODO? // first the api call has to be made, export function getTodos() { return { type: 'GET_TODOS', promise: request.get(API_URL) } } 那么它需要parsing响应 // using https://github.com/Leonidas-from-XIV/node-xml2js parseString(res, function (err, result) { // data gets parsed here }); 然后它必须发起事件。 我试图如下,但它是抛出错误 const request = axios.get(url).then(res=>{ parseString(res, function (err, result) { if(result){ dispatch({ type: GET_TODOS, data:result }) } […]

如何使用Node xml2js模块转义字符?

我有一个&的XML文件,所以我得到一个错误 [Error: Invalid character in entity name Line: 155 Column: 63 Char: ] 我写了一个函数来转义非法的xml字符: const escapeIllegalCharacters = (xml) => { xml = xml .replace(/&/g,'&amp;') .replace(/"/g, '&quot;') .replace(/'/g, '&apos;') .replace(/>/g, '&gt;') .replace(/</g, '&lt;'); return (xml); } 并把它放到一个valueProcessor中: return parse.parseString(xml, {valueProcessors: [escapeIllegalCharacters]}); 但是我仍然得到相同的错误。 这是错误的方式来使用xml2js模块转义字符?

无法从函数获取输出

我想弄清楚如何从xml文件获得价值,并输出该值到控制台。 const path = require('path'); const fs = require('fs'); const parseString = require('xml2js').parseString; const sourceFile = path.join(__dirname, 'books.xml'); const document = (sourceFile, callback) => { fs.readFile(sourceFile, { encoding: 'utf-8' }, function (err, data) { if (err) { return err; } parseString(data, (err, result) => { result.catalog.book.forEach(users => { callback(users.email); }); }); }); }; console.log(document(sourceFile, data […]

无效的字符实体parsingxml

我想parsing一个XML的string,我得到一个错误 [Error: Invalid character entity Line: 0 Column: 837 Char: ] xml不喜欢括号吗? 我是否需要用\\]之类的东西replace所有的括号。 谢谢