Parsear XML a INT para sumar los números
Tengo un XML del cual intento obtener una suma. El número puede ser 0 o 1, y quiero obtener la suma de todos los números. El XML se ve así:
<alerts>
<alert1>0</alert1>
<alert2>1</alert2>
<alert3>1</alert3>
<alert4>0</alert4>
</alerts>
Mi código actual (incorrecto) se ve así:
xpath = require('xpath');
xmldom = require('xmldom');
doc = new xmldom.DOMParser().parseFromString("sourceXml");
var count = xpath.select("alerts/alert1", doc).toString();
count += xpath.select("alerts/alert2", doc).toString();
count += xpath.select("alerts/alert3", doc).toString();
count += xpath.select("alerts/alert4", doc).toString();
var result = count;
Obviamente, debido a que son cadenas de caracteres, el resultado es “0110” en lugar de “2” como un número entero. Intenté envolver cada resultado en parseInt, pero eso solo devuelve NaN. Agradecería cualquier ayuda.
Editar:
parseInt(xpath.select("alerts/alert3", doc).toString());
parseInt(xpath.select("alerts/alert3", doc));
Intenté ambos, pero no tengo mucha experiencia con JavaScript, por lo que podría ser un problema de sintaxis.
davy.ai
Para obtener la suma de todos los números en el XML, puedes probar el siguiente código:
Este código selecciona todos los nodos dentro del elemento ‘alerts’ utilizando la expresión de XPath “//alerts/*”. Luego itera sobre cada nodo, convierte su contenido de texto a un entero y lo añade a la variable ‘sum’. Finalmente, la variable ‘sum’ se asigna a ‘result’.