Manejo de xml con javascript

Me ha tocado interactuar con una aplicación que para acceder a la información de su base de datos, lo debo hacer por medio de un xml y para interactuar con este xml debo usar javascript.

La cuestión es que tengo que hacer una función que me recorra un nodo y la información que tenga este nodo la vaya poniendo en una tabla. El ciclo for me dice que tengo 8 elementos, pero al parecer tengo partes del nodo que tienen menos elementos yhay es donde tengo el problema. Por ejemplo si ves la imagen dice "amount" tengo 8 elementos, pero al final donde dice "units" solo tengo 2 y hay se me complica este asunto.</h2>
El código que uso es el siguiente:
function Charges_Table_GetValue(base_xpath)
{
var result = "";
var total = 0;
var docElement = XmlDocument.documentElement;
var node = docElement.selectNodes("Charges/Charge");
for (i = 0; i < node.length; i++)
{
var items = node.item(i);
var code = items.selectSingleNode("ChargeDefinition/Code").text;
var desc = items.selectSingleNode("ChargeDefinition/Description").text;
var qty = items.selectSingleNode("Quantity").text;
var amount = items.selectSingleNode("Amount").text;
var aply = items.selectSingleNode("Units").text;
/* var itbms = items.selectSingleNode("TaxAmount").text;
if (itbms != null)
{
var itbms_parse = parseFloat(itbms);
var amount_parse = parseFloat(amount);
total = amount_parse + itbms_parse;
}*/
result += code + "\t" + desc + "\t" + amount + "\t" + qty + "\t" + aply + "\r\n";
}
return result;
}
No se si me puedas ayudar

1 respuesta

Respuesta
1

Disculpa, no entiendo la pregunta.

Lo que te sucede es que si en el form primero recorres un elemento con 8 nodos, ¿después no puedes recorrer otro elemento con 2 nodos?

Hola, mil gracias por atender mi pregunta.

La verdad es un poco complejo esto porque estoy iniciando en esto del xml... Pero voy a tratar de ser mas claro.

en esta imagen parecen 8 nodos hijos de Charges, estos 8 nodos los recorro con un ciclo for. Mi problema esta en que necesito acceder a un TAG que se llama "Tax amount", pero este TAG no esta presente en todos los nodos. ¿Como puedo validar o controlar en mi ciclo for que este tag existe en el nodo?

Existe una función que permite localizar elementos por su tagname que en este caso será "taxamount"

Document. GetElementsByTagName("Tax amount")

Si existe, te retornará las distintas referencias a los nodos con ese tagName

Para saber si existe o no un nodo con ese nombre, tendrías que hacer un if consultando si el largo del arreglo de referencias es mayor a cero

if(document.getElementsByTagName("Tax amount").length > 0){
     alert("existe");
     //ejecutar acciones
}else{
     alert("No existe");
     //No ejecutar acciones
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas