Estoy tratando de convertir XML a JSON en node.js utilizando el módulo xml2js. ¿Cómo manejo el alias del espacio de nombres al acceder a las variables?XML a JSON: trata de espacios de nombres xml y alias en JavaScript
El código de seguimiento convierte mi archivo (sampleWithNamespaces.xml)
var fs = require('fs'),
xml2js = require('xml2js');
var parser = new xml2js.Parser();
fs.readFile('sampleWithNamespaces.xml', function (err, data) {
parser.parseString(data, function (err, result) {
console.dir(result);
console.log('Done');
});
});
sampleWithNamespaces.xml:
<d:student xmlns:d='http://www.develop.com/student'>
<d:id>3235329</d:id>
<d:name>Jeff Smith</d:name>
<d:language>JavaScript</d:language>
<d:rating>9.5</d:rating>
</d:student>
Salida:
$ node xml2jsTest.js
{ '@': { 'xmlns:d': 'http://www.develop.com/student' },
'd:id': '3235329',
'd:name': 'Jeff Smith',
'd:language': 'JavaScript',
'd:rating': '9.5' }
Done
puedo tener acceso al atributo 'nombre' mediante el uso de la notación result['d:name']
en lugar de result.name
si no tuviera t el alias del espacio de nombres Supongo que mi pregunta es, ¿estoy haciendo esto de la manera correcta?
Tengo read que "Si un elemento tiene un alias de espacio de nombre, el alias y el elemento se concatenan usando" $ ". Por ejemplo, ns: elemento se convierte en ns $ elemento" Si hago esto, puedo leer el atributo como result.d$name
. Si fuera por esta ruta, ¿cómo iba a hacerlo?