que tienen un archivo XML como esto:¿Es esta la manera más rápida de analizar mi XML en objetos JavaScript usando jQuery?
<content>
<box>
<var1>A1</var1>
<var2>B1</var2>
<var3>C1</var3>
<var4>D1</var4>
</box>
<box>
<var1>A2</var1>
<var2>B2</var2>
<var3>C2</var3>
<var4>D2</var4>
</box>
<box>
<var1>A3</var1>
<var2>B3</var2>
<var3>C3</var3>
<var4>D3</var4>
</box>
</content>
Tiene 500 box
elementos que tengo que analizar en objetos de JavaScript. Estoy utilizando el código que funciona bien, pero yo soy un novato y tal vez me estoy perdiendo algo y me gustaría obtener sugerencias si hay una manera mejor/más rápido que hacerlo:
var app = {
//...
box: [],
init: function (file) {
var that = this;
$.ajax({
type: "GET",
url: file,
dataType: "xml",
success: function (xml) {
$("box", xml).each(function (i) {
var e = $(this);
that.box[i] = new Box(i, {
var1: e.children("var1").text(),
var2: e.children("var2").text(),
var3: e.children("var3").text(),
var4: e.children("var4").text()
});
});
}
});
},
//...
};
Gracias de antemano.
Esto se ve muy bien, pero entonces, ¿cómo podría yo añadir métodos para el prototipo de los objetos creados caja? – VerizonW
Puede usar un bucle for ... in para copiar todas las propiedades de result.content.box en un objeto con los métodos que desee (puede hacerlo en una función de tipo 'constructor' si lo desea). No es tan elegante. Alternativamente, puede asignar todos los métodos al objeto de resultado JSON usted mismo dentro de la función de éxito. –
En otras palabras, en general, no se puede dar a los objetos del cuadro creado un prototipo especial. En su lugar, debe traducir de algún modo los objetos de "datos antiguos simples" que el analizador JSON le ofrece en versiones completamente funcionales, o simplemente usarlos de la forma en que se presentan en un código de estilo más procedimental. –