Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung des JS-Vorgangs zum Konvertieren eines XML-Objekts in ein Json-Objekt

Detaillierte Erläuterung des JS-Vorgangs zum Konvertieren eines XML-Objekts in ein Json-Objekt

迷茫
迷茫Original
2017-03-26 15:04:581499Durchsuche

Vor kurzem stieß ich beim Umgang mit einer Front-End-Funktion auf ein Problem. Das ursprüngliche System verwendete XML zum Speichern von Daten, aber auf dem neuen System wollte ich es in einen JSON-Objektspeicher konvertieren, also habe ich darüber nachgedacht, es direkt zu konvertieren zum JSON-Objektspeicher. Das XML-Objekt wird in ein JSON-Objekt konvertiert.

Bisher habe ich keine universelle Konvertierungsmethode gefunden. Ich kann nur eine for-Schleife verwenden, um Werte basierend auf der bekannten XML-Objektstruktur kontinuierlich zuzuweisen.

var xml = ······;//获取xml对象
var objList = [];
for(var i = 0;i<xml.childNodes.length;i++){
    var obj = {};
    obj.attribute1 = xml.getAttribute("attribute1");//获取节点属性
    obj.attribute2 = xml.getAttribute("attribute2");
    obj.children = [];
    for(var x=0;x<xml.childNodes[i].childNodes.length;x++){
        var element = xml.childNodes[i].childNodes[x];
        var child = {};
        child.attribute1 = element.getAttribute("attribute1");
        child.attribute2 = element.getAttribute("attribute2");
        obj.children.push(child);
    }
    objList.push(obj);          
}

Die for-Schleife kann weiterhin verschachtelt werden. Die Attribute jedes neuen JSON-Objekts können angepasst werden, Sie müssen jedoch die vorhandenen Attribute, die Sie benötigen, in die Methode getAttribute() eintragen.

Diese Methode scheint dumm zu sein, deshalb werde ich sie vorerst so verwenden und darüber nachdenken, sie zu ersetzen, wenn mir eine bessere Methode einfällt.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des JS-Vorgangs zum Konvertieren eines XML-Objekts in ein Json-Objekt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn