offtopic:
@modje: Ik hoop dat dit topic goed is geplaatst. Want hoewel JavaScript is Node.js toch serversided scripting. Past dit beter in SEA of iets anders, schroom niet om het te verplaatsen.
@modje: Ik hoop dat dit topic goed is geplaatst. Want hoewel JavaScript is Node.js toch serversided scripting. Past dit beter in SEA of iets anders, schroom niet om het te verplaatsen.
Ik ben steeds meer bezig met XML in Node.js, en ik vind het zo handig om gewoon een JS object om te kunnen zetten naar XML. Dan hoef ik er niet zo bij na te denken.
Als je het relatief simpel houdt dan zijn twee hele handige libraries[list]• xml2js• https://github.com/Leonidas-from-XIV/node-xml2js• En het onafhankelijke Js2Xml• https://github.com/philjackson/js2xml
Met xml2Js kan je heel makkelijk een XML document omzetten naar een object:
code:
1
2
3
4
5
6
7
8
9
| var fs = require('fs'), xml2js = require('xml2js'); var parser = new xml2js.Parser(); fs.readFile('/foo.xml', function(err, data) { parser.parseString(data, function (err, result) { console.log(JSON.stringify(result)); }); }); |
Js2Xml is precies omgekeerd, je kan een object omzetten naar Xml:
code:
1
2
3
4
5
6
7
8
9
10
| var Js2Xml = require("js2xml").Js2Xml; var person = { name: "Phil Jackson", mood: "Bored", stuff: { one: { two: "three" } } }; var js2xml = new Js2Xml("person", person); js2xml.toString(); |
Maar het vervelende is, ik wil nu met attributen werken, en Js2Xml ondersteunt geen attributen. Omdat iedereen net als ik liever makkelijk dan moeilijk doet, ging ik er vanuit dat er nog wel tien dergelijke libraries waren, maar ik kan gewoon helemaal niets vinden.
Iedereen heeft het maar over XmlDom en SAX, maar die parsers en voorbeelden werken met allemaal onDit() onDat() (bijvoorbeeld bij SAX) wat ongetwijfeld in bepaalde situaties handig is - bijvoorbeeld als je XML heel langzaam binnenkomt en je wilt er alvast wat mee doen - maar voor mijn usecase die gister nog makkelijk was wordt opeens erg 'lelijk' alsof ik met een hooivork en een hooiberg bezig moet terwijl ik alleen een slokje water wil nemen. (
Terug naar mijn stelling dat iedereen liever makkelijk dan moeilijk doet en dat ik meer libraries had verwacht die iets soortgelijks doen; zou het misschien zo zijn dat iedereen een hele simpele methode loopt te gebruiken die ik niet ken en wegens gebrek aan sleutelwoordenkennis en duckduckgo-skills nog niet tegen ben gekomen?
Of is er juist wel een library die ik zoek die het zelfde doet maar wel attributen ondersteunt?
🇪🇺 Buy from EU (GoT)