2012-06-05 14 views
5

Estoy tratando de analizar y consultar un elemento dentro de un xml usando xml2js. Mi cadena XML es el siguiente:Nodo para analizar xml usando xml2js

var xml = "<config><test>Hello</test><data>SomeData</data></config>"; 

Lo que quiero es extraer el valor y asignarlo a var extractedData

Esto es lo que tengo hasta ahora:

var parser = new xml2js.Parser(); 
parser.parseString(xml, function(err,result){ 
    //Extract the value from the data element 
    extractedData = result['data']; 
} 

Esto no funciona . ¿Puede alguien señalar cómo podría obtener los valores de mi xml?

Gracias

Esto no parece estar funcionando. ¿Puede alguien decirme cuál podría ser el problema aquí?

Respuesta

14

que funciona para mí

var xml2js = require('xml2js'); 
var xml = "<config><test>Hello</test><data>SomeData</data></config>"; 

var extractedData = ""; 
var parser = new xml2js.Parser(); 
parser.parseString(xml, function(err,result){ 
    //Extract the value from the data element 
    extractedData = result['config']['data']; 
    console.log(extractedData); 
}); 
console.log("Note that you can't use value here if parseString is async; extractedData=", extractedData); 

resultado:

SomeData 
Note that you can't use value here if parseString is async; extractedData= SomeData 
+3

¿Cómo puedo imprimir los datos que está en 5 o 6 nivel de profundidad –

+0

utilizar @Vishwanathgowdak 'util.inspect()'; vea la respuesta aceptada aquí para un ejemplo rápido: http://stackoverflow.com/questions/10729276/how-can-i-get-the-full-object-in-node-js-console-log-rather-than- objeto Aquí hay un enfoque rápido y sucio: 'console.log (require ('util'). inspeccionar (resultado, falso, nulo));' – Josh1billion

Cuestiones relacionadas