Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Fastify plugin / module to parse XML payload / body into JS object

Code Climate fastify-xml-body-parser donate button

Known Vulnerabilities NPM quality Travis ci Build Status Coverage Status bitHound Dev Dependencies bitHound Overall Score


  1. Include in package.json
$npm install fastify-xml-body-parser
$yarn add fastify-xml-body-parser
  1. Then import in your code and register with fastify

Sample POST body / payload

const fastify = require('fastify')()

fastify.register(require('fastify-xml-body-parser'))'/', (req, reply) => {

fastify.listen(8000, (err) => {
  if (err) throw err

The sent reply would be the object:

  sample: 'data'


This plugin use fast-xml-parser to parse the XML payload. So it accepts all the options supported by fast-xml-parser.

var options = {
    attributeNamePrefix : "@_",
    attrNodeName: "attr", //default is 'false'
    textNodeName : "#text",
    ignoreAttributes : true,
    ignoreNameSpace : false,
    allowBooleanAttributes : false,
    parseNodeValue : true,
    parseAttributeValue : false,
    trimValues: true,
    decodeHTMLchar: false,
    cdataTagName: "__cdata", //default is 'false'
    cdataPositionChar: "\\c",

const fastify = require('fastify')()

fastify.register(require('fastify-xml-body-parser'), options)

Additionaly, it supports following options

  • validate: If it is set to true, this plugin validate the payload for valid XML syntax before parsing.
  • contentType: It accepts a string or an array of content types. By default it is set to ["text/xml", "application/xml", "application/rss+xml"].

Note: I've not included body size limit to this plugin because of following reasons

  • I believe it's good to use API gateway to handle non-functional requirements, like security.
  • There are already some plugins which verifies for body length. It'll be a performance degrade if all the plugins are doing the same thing.


MIT License

Worth to mention

Don't forget to check my other projects

  • BigBit standard) : A standard to reprent any number in the universe in comparitively less space and without precision loss. A standard to save space to represent any text string in comparision of UTF encoding.
  • imglab : Speedup and simplify image labeling / annotation. Supports multiple formats, one click annotation, easy interface and much more. There are more than 20k images are annotated every month.
  • अनुमार्गक (anumargak) : The fastest and simple router for node js web frameworks with many unique features.
  • stubmatic : A stub server to mock behaviour of HTTP(s) / REST / SOAP services. You can also mock binary formats.
  • मुनीम (Muneem) : A webframework made for all team members.
  • शब्दावली (shabdawali) : Amazing human like typing effects beyond your imagination.
  • fast-lorem-ipsum : Generate lorem ipsum words, sentences, paragraph very quickly. Better than any generater. Works with NPM, browser, and CLI.


Fastify plugin / module to parse XML payload / body into JS object




No releases published


No packages published