MEDLINEXMLToJSON
MEDLINEXMLToJSON is a Node.js application designed for MEDLINE®/PubMed® Data licensees to download and convert the MEDLINE®/PubMed® XML data into a JSON format.
We are in no way affiliated with MEDLINE® or PubMed®. We're only a MEDLINE® licensed library that want to share this software with the public so that anyone with a MEDLINE license can easier utilize MEDLINE® metadata for improving healthcare.
Wikipedia has an article regarding MEDLINE® here https://en.wikipedia.org/wiki/MEDLINE and PubMed here https://en.wikipedia.org/wiki/PubMed
The U.S. National Library of Medicine have a page about MEDLINE® here http://www.nlm.nih.gov/pubs/factsheets/medline.html
It's developed for the 2014 version of the MEDLINE® XML DTD (Document type definition).
Dependencies
The only dependency is the XML parser sax by Isaac Z. Schlueter.
Installation
npm install medlinexmltojson
Example usage
Simple example
var medline2json = require("medlinexmltojson");
medline2json.parse("myxmlfile.xml", function(err, json) {
// err is a string saying what's wrong. It's null if there's not an error.
// json is the json string. It's null if there's an error.
});
Stream example
var medline2json = require("medlinexmltojson"),
fs = require("fs");
medline2json.parse(fs.createReadStream("./myxmlfile.xml"), function(err, json) {
// err is a string saying what's wrong. It's null if there's not an error.
// json is the json string. It's null if there's an error.
});
Stream example with gzipping
var medline2json = require("medlinexmltojson"),
fs = require("fs"),
zlib = require('zlib'),
gzip = zlib.createGunzip();
medline2json.parse(fs.createReadStream("./myxmlfile.xml.gz").pipe(gzip), function(err, json) {
// err is a string saying what's wrong. It's null if there's not an error.
// json is the json string. It's null if there's an error.
});
Continous "streaming" of JSON example
var medline2json = require("medlinexmltojson");
medline2json.parse("myxmlfile.xml", true, function(err, json) {
// Callback will be run as many times as there are MEDLINE data in the XML file.
});
License
This project is released under the terms of the GNU AGPL version 3
Author
Changelog
Version 1.2.1 - 20th of August 2014
Made numbers actual numbers in the JSON string instead of everything being strings.
Version 1.2.0 - 19th of August 2014
Added optional alternative callback functionality to continously call callback with each MEDLINE entry in JSON instead of all the JSON at once.
Version 1.1.0 - 15th of August 2014
Added data streaming functionality. Improved test.
Version 1.0.1 - 6th of August 2014
Changed to 1.0.1 to make npm less grumpy with publishing under the same version.
Version 1.0 - 6th of August 2014
Test added. Can and should be used as a module. Moved around files. Added an extensive test xml that contains a lot of the different possibilites that the MEDLINE® XML file could contain.
Version 0.1 - 30th of July 2014
Basic usage with example file. Can not be used as a module yet!