function convertirXMLADom(xml){var dom;if(window.ActiveXObject){dom=new ActiveXObject("Microsoft.XMLDOM");dom.async="false";dom.loadXML(xml);}else{try{parser=new DOMParser();dom=parser.parseFromString(xml,"text/xml");}catch(e){alert("Error al convertir el XML: "+e.message);}}return dom;}function convertirDomAXml(dom,conFormato){if(conFormato){var tabulacion="";var nodoPadre=dom.parentNode;while(nodoPadre!=null){tabulacion+="    ";nodoPadre=nodoPadre.parentNode;}var xml="";if(tabulacion!=""){xml+="\r\n"+tabulacion;}if(!dom.hasChildNodes()){xml+="<"+dom.nodeName+"/>";}else{xml+="<"+dom.nodeName;var xmlHijos="";var texto="";var cdata="";var atributos=dom.attributes;for(var i=0;i<atributos.length;i++){xml+=" "+atributos[i].nodeName+'="'+atributos[i].nodeValue+'"';}var nodos=dom.childNodes;for(var i=0;i<nodos.length;i++){if(nodos[i].nodeType==1){xmlHijos+=convertirDomAXml(nodos[i],true);}else{if(nodos[i].nodeType==2){xml+=" "+nodos[i].nodeName+'="'+nodos[i].nodeValue+'"';}else{if(nodos[i].nodeType==3){texto=nodos[i].nodeValue;}else{if(nodos[i].nodeType==4){cdata=nodos[i].nodeValue;}}}}}xml+=">";if(texto!=""){xml+=texto;}else{if(cdata!=""){xml+="<![CDATA["+cdata+"]]>";}else{xml+=xmlHijos+"\r\n"+tabulacion;}}xml+="</"+dom.nodeName+">";}return xml;}else{if(window.ActiveXObject){return dom.xml;}else{return(new XMLSerializer()).serializeToString(dom);}}}function vaciarElemento(elemento){var hijos=elemento.childNodes;while(hijos.length>0){elemento.removeChild(hijos[0]);}}function crearCData(contenido){return convertirXMLADom("<temporal><![CDATA["+contenido+"]]></temporal>").childNodes[0].childNodes[0];}function getElementosHijoDeTipo(padre,tipo,recursivo){var encontrados=new Array();tipo=tipo.toLowerCase();var hijos=padre.childNodes;for(var i=0;i<hijos.length;i++){if(hijos[i].nodeType==1){if(hijos[i].nodeName.toLowerCase()==tipo){encontrados.push(hijos[i]);}if(recursivo){encontrados=encontrados.concat(getElementosHijoDeTipo(hijos[i],tipo,true));}}}return encontrados;}function getPrimerElementoHijoDeTipo(padre,tipo,recursivo){var descendiente=null;tipo=tipo.toLowerCase();var hijos=padre.childNodes;for(var i=0;i<hijos.length&&descendiente==null;i++){if(hijos[i].nodeType==1){if(hijos[i].nodeName.toLowerCase()==tipo){descendiente=hijos[i];}if(descendiente==null&&recursivo){descendiente=getPrimerElementoHijoDeTipo(hijos[i],tipo,true);}}}return descendiente;}function getElementosHijoConAtributo(padre,atributo,valor,recursivo){var encontrados=new Array();var hijos=padre.childNodes;for(var i=0;i<hijos.length;i++){if(hijos[i].nodeType==1){if(hijos[i].getAttribute(atributo)==valor){encontrados.push(hijos[i]);}if(recursivo){encontrados=encontrados.concat(getElementosHijoConAtributo(hijos[i],atributo,valor,true));}}}return encontrados;}
