Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

udithv/body-parser-xml-json

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

6 Commits

Repository files navigation

XML Body Parser using xml-js library

Adds XML parsing to the body-parser library, so you can convert incoming XML data into a JSON representation.

This is really useful if you want to deal with plain old JavaScript objects, but you need to interface with XML APIs.

This is based on body-parser-xml package.

Installation

npm install --save express body-parser body-parser-xml-json

Usage

This library adds an xml method to the body-parser object.

Initialise like so:

var bodyParser = require('body-parser');
require('body-parser-xml-json')(bodyParser);

Once initialised, you can use it just like any other body-parser middleware:

var app = require('express')();
app.use(bodyParser.xml());

This will parse any XML-based request and place it as a JavaScript object on req.body for your route handlers to use.

An XML-based request is determined by the value of the Content-Type header. By default, any Content-Type header ending in /xml or +xml will be parsed as XML. For example, the following Content-Types will all match:

  • text/xml
  • application/xml
  • application/rss+xml

If you need to match against a custom Content-Type header, pass in the type to match as an option (see below).

Options

You can also pass in options:

app.use(bodyParser.xml(options));

xmlParseOptions

This option controls the behaviour of the XML parser. You can pass any option that is supported by the xml-js library: [see here]

Example

var express = require('express'),
 bodyParser = require('body-parser');
require('body-parser-xml-json')(bodyParser);
var app = express();
app.use(bodyParser.xml({
 xmlParseOptions: {
 compact: true 
 }
}));
app.post('/users', function(req, res, body) {
 // Any request with an XML payload will be parsed
 // and a JavaScript object produced on req.body
 // corresponding to the request payload.
 console.log(req.body);
 res.status(200).end();
});

Motivation

This library was born out of a frustration that express-xml-bodyparser, the most popular XML-parsing library for express, doesn't support the regular body-parser options - in particular, limiting the payload size.

This library was written to use body-parser's text parser under the hood, and then passes the parsed string into the XML parser. We can therefore take advantage of body-parser's regular options, and support limiting the payload size, amongst other things.

License

MIT

About

A body parser addon for parsing XML using xml-js library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /