From b87482cb483bfad2f7e44582da401e9c5dfddfa6 Mon Sep 17 00:00:00 2001 From: Devin Howard Date: Mon, 21 Aug 2017 08:35:55 -0700 Subject: [PATCH] skeleton code to parse XML. Still need: 1) a way to determine this is your team's format of xml 2) an algorithm to convert xml nodes to metamaps objects 3) define interface (maybe just Metamaps.Import.handleXML from javascript console for now) --- frontend/src/Metamaps/Import.js | 5 +++++ frontend/src/Metamaps/XMLParser.js | 18 ++++++++++++++++++ package.json | 3 ++- 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 frontend/src/Metamaps/XMLParser.js diff --git a/frontend/src/Metamaps/Import.js b/frontend/src/Metamaps/Import.js index d4051ddb..b499d462 100644 --- a/frontend/src/Metamaps/Import.js +++ b/frontend/src/Metamaps/Import.js @@ -70,6 +70,11 @@ const Import = { Import.handle(results) }, + handleXML: function(text) { + const results = XMLParser.parseSchema(text) + Import.handle(results) + }, + handle: function(results) { var self = Import var topics = results.topics.map(topic => self.normalizeKeys(topic)) diff --git a/frontend/src/Metamaps/XMLParser.js b/frontend/src/Metamaps/XMLParser.js new file mode 100644 index 00000000..3897e3f6 --- /dev/null +++ b/frontend/src/Metamaps/XMLParser.js @@ -0,0 +1,18 @@ +import parseXML from 'xml-parser' + +const XMLParser = { + parseSchema = (text) => { + // see format of data at https://www.npmjs.com/package/xml-parser + const data = parseXML(text) + + // TODO algorithm to transform `data` to `returnValue` + + // TODO this is the output format, but we still need to fill it in with real data + const returnValue = { + topics: [], + synapses: [] + } + } +} + +export default XMLParser diff --git a/package.json b/package.json index dfa67ded..813e389b 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,8 @@ "riek": "1.0.7", "simplewebrtc": "2.2.2", "socket.io": "1.3.7", - "webpack": "2.2.1" + "webpack": "2.2.1", + "xml-parser": "^1.2.1" }, "devDependencies": { "babel-eslint": "^7.1.1",