Bien, parece que el problema esta por el lado de PHP obviamente. Dejo la solución por si alguien tiene el mismo problema.
Resulta que la linea que sigue:
Formatea el archivo xml para que los navegadores los puedan presentar de una forma legible.
Cambiando
true por
false se corregiria mi problema y se eliminarian todos los saltos de linea, tabulaciones y espacios insertados por el mismo objeto php.
Ahora pude obtener la siguiente salida:
Código HTML:
Ver original<?xml version="1.0"?>
<root><producto><nombre>Producto1</nombre><idcategoria>idCategoriaProducto1</idcategoria></producto><producto><nombre>Producto2</nombre><idcategoria>idCategoriaProducto2</idcategoria></producto><producto><nombre>Producto3</nombre><idcategoria>idCategoriaProducto3</idcategoria></producto></root>
esta salida me sirve para que mi codigo javascript funcione correctamente sin tener que aumentar de a 2 el indice de la lista de nodos hijos:
Código Javascript
:
Ver originalfunction cargarProductos(producto){
var httpRequest;
if (window.XMLHttpRequest)
{
//El explorador implementa la interfaz de forma nativa
httpRequest = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
//El explorador permite crear objetos ActiveX
try {
httpRequest = new ActiveXObject("MSXML2.XMLHTTP");
} catch (e) {
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
httpRequest.onreadystatechange = function() {
if (httpRequest.readyState == 4) {
if (httpRequest.status ==200){
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(httpRequest.responseText, "application/xml");
var root= xmlDoc.getElementsByTagName("producto");
for (var i=0; i<root.length; i++){
var nombre= root[i].childNodes[0].textContent;
var idCategoria= root[i].childNodes[1].textContent;
var divisor= document.getElementById("productos");
var campo= document.createElement("fieldset");
var texto= document.createTextNode("Nombre= "+nombre+" idcategoria= "+idCategoria);
campo.appendChild(texto);
divisor.appendChild(campo);
}
}
}else alert(httpRequest.readyState);
}
httpRequest.open('GET', '../ajax/ObtenerProductos.php?math=' + Math.random(), true);
httpRequest.send(null);
return false;
}
Como se pueden ver en las lineas 36 y 38, accedo a los nodos hijos con los indices correctos.
ahora a seguir con esto que me está sacando la cabeza