Recientemente, XML se ha utilizado en el proyecto. El requisito es que cuando los usuarios instalan el producto, primero guardan una serie de datos en el archivo XML y los escriben en la base de datos cuando se ejecute el último paso. Esto minimiza el acceso a la base de datos, por lo que tienen que preocuparse por la compatibilidad de cada navegador (triste ...)
Ingrese el texto principal y es un archivo XML (createInstal.xml)
<? xml versión = "1.0" encoding = "utf-8"?> <fous> <emitem> <id descripción = "nivel" name = "1" f_chines = "número" t_chines = "" inglés = "id" valor = "1"> número </id> <nivelado de nivel = "nivel" Nombre "Nombre de nivel =" F_Chines = "Nombre" T_chines = "Nombre" en inglés = "English" Nombre </nivelado> <disminución Descripción = "nivel" name = "" f_chines = "nivel-descripción" inglés = "desescrita de nivel" valor = "nivel"> descripción </secction> <tchines description = "nivel" name = "" f_chines = "tradicional chino" t_chines = "chino tradicional" inglés = "t-chineses" valor = "1"> chino tradicional </tchines> <inglés "descripción tradicional" n. f_chines = "English Name" T_chines = "English Name" English = "English" Value = "LevelOne"> English Name </glish> <6 Descripción = "Premio" name = "106" f_chines = "premio" t_chines = "Six" inglés = "wordA-of-t" value = "a"/> <premio eleven Descripción = "Nombre" Nombre = "111" F_CHINES = "GRAUND" ELEVEN "TEWEN" TOVEN " inglés = "11" value = "0.05"/> <premio once descripción = "premio" name = "112" f_chines = "premio once" t_chines = "premio" name = "112" f_chines = "premio once" t_chines = "premio" name = "113" f_chines = "premio" t_chines = "3333" valor = "0.85"//"113" F_Chines = "premio" t_chines = "3333" Value = "0.85"/"/" 113 "F_Chines =" premio "t_chines =" 3333 "Value =" 0.85 "/"/"113" f_chines = "premio" T_chines = "3333" Valor = "0.85"/"/" descripción = "premio" name = "101" f_chines = "premio one" t_chines = "one" inglés = "aword-of-a" value = "0.90"/> </item> </foin>
Para ser compatible con IE y FF, escriba las siguientes funciones (loadxml.js):
var is_ie = false; // es un navegador IE if (window.activexObject) {is_ie = true;} // cargar multi-browser compatible xml función de documento Loadxml (xmlurl) {var xmlDoc = null; try {xmlDoc = new ActiveXObject ("microsoft.xmld");} catch (e) {thy {thy {thy {thy {thin { document.implementation.createDocument ("", "", null);} catch (e) {alert (e.message);}} try {// cambia la carga asíncrona de xmldoc.async = false; xmldoc.load (xmlurl); return xmlDoc;} capt (e) {alerta (e.message);} En el formato de documento xml en la función de documento xml createExml (xmlText) {if (! XmlText) {returnnull; intente {var xmldocm = new ActiveXObject ("Microsoft.xmlDom"); xmldocM.Loadxml (xmlText); return xmlDocm;} capt Domparse (). ParseFromString (xmlText, "text/xml");} catch (e) {returnnull;}}}} // Obtener el texto del nodo y sus hijos la función getxmlText (oncode) {if (onode.Text) {// iereturn onode.tex;} var sTEX onode.childnodes.length; onode [i] .childnodes.nodeValue;}} return Stext;} // Obtener la identificación de cadena del nodo y la función de nodos de sus hijos getxml (onode) {if (onode.xml) {// iereturn onode.xml;} var serializer = new xmlSerializer (); regreso Serializer.SerializeToString (onode);} // Obtenga el texto del nodo especificado (nota: también puede usar onode.childnodes [0] .nodeValue para obtener la información de texto del nodo, para que no necesite considerar el problema del navegador Onodeonode) Function getxmlnodeText (onode) {if (is_ie) (onode.nodeType == 1) return onode.TextContent;}} // Obtenga el valor de atributo de la función de nodo especificada getxmlnodeatTribute (onode, attrname) {if (is_ie) {return onode.getTtribute (AtrNeTnEn onode.attributes [attrname] .value; return "Undefined";}}Ok, es decir, y FF ya no son problemas, los métodos de operación específicos son los siguientes:
var docum = loadxml ("createInstal.xml"); // cargar un archivo xml var root = document.documentelement; // root nodo var nodelist = root.getElementsByTagName ("elementos"); for (var i = 0; i <nodelist [0] .childNodes.length; i ++) {var att = getxmlnodeattribute (nodelist [0] .childnodes [i], "descripción"); // Obtener el atributo de descripción de este nodo if (attr! = "indefinido") // El propósito es ser compatible con el navegador FF {alerta (attr); }}Esto garantizará la compatibilidad entre IE y FF (en la actualidad, Google Chrome no puede usar este método para ser compatible, y aún no se debe modificar)
Además, hablemos de dos formas de obtener el XML en Firefox:
JS Lee archivos XML en Firefox
Busqué el método de "JS leyendo archivos XML en Firefox" en línea durante mucho tiempo, y a muchos de ellos se les pidió y nadie respondió. Vi a un grupo de programadores quejándose de Firefox: "No hay beneficio excepto para los programadores de escape". Regresé al punto. Firefox no admite objetos ActiveXObject en IE. Para obtener un XML DOM, hay dos formas de:
1. Document.implementation.createDocument ("", "", nulo);
2. Window.xmlhttprequest
Ejemplo: 1. Var dom = document.implementation.createDocument ("", "", nulo);
dom.async = false;
dom.load ("test.xml"); // dom es un objeto XML.
2. Var oxmlhttp = new xmlhttprequest ();
oxmlhttp.open ("get", "test.xml", falso);
oxmlhttp.send (nulo);
//oxmlhttp.Responsexml es un objeto XML.
Aviso:
1. Documentos de Firefox analizados XML
2. El navegador Firefox y yo usamos TextContent para analizar los valores de diferentes nodos de XML.
3. Y agregará ruptura de la línea "/n" antes y después de algunos nodos jerárquicos infantiles (es decir, cuando se usa nodos de niños). (No sé por qué este es el caso al depurar con Firebug, por lo que es mejor probar el código que he escrito. Si está mal cambiar el entorno), es decir, el primer nodo es "/n", y el segundo nodo es el real
El primer nodo. El tercer nodo es "/n", y el cuarto nodo es el segundo nodo real.
Según la situación de Firefox anterior, tengo un ejemplo aquí para evitar el uso de nodos de niños y lograr la compatibilidad: haga clic para ingresar
Lo anterior es el método de implementación de los archivos XML de operación JS que le ofrece el editor, que es compatible con todos los contenidos de IE y Firefox. Espero que todos apoyen a Wulin.com más ~