diff --git a/index.js b/index.js index 682b161..841b4bc 100644 --- a/index.js +++ b/index.js @@ -5,8 +5,7 @@ /* Module Require */ var dateFormat = require('dateformat'), - JSONSelect = require('JSONSelect'), - xm = require('xml-mapping'), + cheerio = require('cheerio'), mkdirp = require('mkdirp'), mustache = require('mustache'), request = require('request'), @@ -244,24 +243,10 @@ * @return {object} Objet JSON représentant le document XML ou null */ object.XML.load = function(xmlStr) { - var result = xm.load(xmlStr); + var result = cheerio.load(xmlStr); return (Object.keys(result).length > 0) ? result : null; }; -/** - * Retourne les élement présent dans un xml "JSONifié" correspondant au sélecteur indiqué - * @param {string} selector Sélecteur - * @param {object} jsonObject Objet JSON représentant un document xml - * @return {array} Array contenant les éléments sélectionnés - */ -object.XML.select = function(selector, jsonObject) { - try { - return JSONSelect.match(selector, jsonObject); - } catch (e) { - console.log(e); - } -}; - // Regroupe les fonctions liées aux traitement des URL object.URL = {}; diff --git a/package.json b/package.json index 2a4a4e3..e0e8b18 100644 --- a/package.json +++ b/package.json @@ -13,14 +13,13 @@ "author": "istex", "license": "ISC", "dependencies": { - "dateformat": "^1.0.12", - "JSONSelect": "^0.4.0", - "xml-mapping": "^1.7.1", "async": "^2.1.4", + "cheerio": "^0.22.0", + "dateformat": "^1.0.12", "mkdirp": "^0.5.1", "mocha": "^3.2.0", "mustache": "^2.2.1", - "request": "^2.74.0", - "rd-tu": "git+ssh://vsistex.intra.inist.fr:22222/istex/rd-tu.git" + "rd-tu": "git+ssh://vsistex.intra.inist.fr:22222/istex/rd-tu.git", + "request": "^2.74.0" } } diff --git a/test/dataset/in/data/XML.json b/test/dataset/in/data/XML.json index 56c9880..f7c2cfc 100644 --- a/test/dataset/in/data/XML.json +++ b/test/dataset/in/data/XML.json @@ -3,30 +3,14 @@ "label": "Devrait parser un fichier xml", "path": "./dataset/in/resources/file.mods.xml", "result": { - "be": "object" + "not": true, + "equal": 0 } }, { "label": "Ne devrait pas parser de xml (fichier vide)", "path": "./dataset/in/resources/empty.mods.xml", "result": { - "equal": null + "equal": 0 } - }], - "select": [{ - "label": "Devrait trouver l'identifiant ISSN dans le fichier xml", - "path": "./dataset/in/resources/file.mods.xml", - "arguments": { - "selector": ".type:val(\"ISSN\") ~ .$t" - }, - "result": { - "equal": "0000000000000000000000000000000000000000" - } - }, { - "label": "Ne devrait pas trouver d'identifiant ISBN dans le fichier xml", - "path": "./dataset/in/resources/file.mods.xml", - "arguments": { - "selector": ".type:val(\"ISBN\") ~ .$t" - }, - "result": {} }] } \ No newline at end of file diff --git a/test/run.js b/test/run.js index a66ec97..6784c4d 100644 --- a/test/run.js +++ b/test/run.js @@ -42,8 +42,7 @@ "sync": null }, "XML": { - "load": testOf_xmlLoad, - "select": testOf_xmlSelect, + "load": testOf_xmlLoad }, "URL": { "addParameters": testOf_urlAddParameters @@ -146,17 +145,7 @@ */ function testOf_xmlLoad(fn, item, cb) { var xmlStr = fs.readFileSync(path.join(__dirname, item.path), 'utf-8'); - return cb(fn(xmlStr)); -} - -/** - * Fonction de test à appliquée pour : - * - myObject.XML.select() - */ -function testOf_xmlSelect(fn, item, cb) { - var xmlStr = fs.readFileSync(path.join(__dirname, item.path), 'utf-8'); - var jsonObject = myObject.XML.load(xmlStr); - return cb(fn(item.arguments.selector, jsonObject)[0]); + return cb(fn(xmlStr).html().length); } /**