konvertiert die DOM-Struktur in JSON

8

Ich habe so viel Zeit damit verschwendet ... der Rekursionsteil ist ziemlich illusorisch.
für eine gegebene HTML-Struktur unbekannter Tiefe muss ich in JSON konvertieren.
(Ich benutze das von einem YAML-i18n-Übersetzungssystem, das ich gerade baue)

Meine allgemeine Idee ist es, tief zu gehen, bis das INPUT gefunden wird, und dann ein Objekt mit dem Schlüssel / Wert von span.innerHTML/input.value und gebe das zurück Objekt, also ist es der Wert eines Schlüssels, der die letzte <span class="title"> erreicht.

(Ja, es ist ein bisschen kompliziert, aber sehr interessant zu entwickeln)

JSBIN-Spielplatz - Live-Codebeispiel

Ich kann meine rekursive Funktion nicht richtig ausführen, um den JSON auszugeben, den ich möchte ...

HTML-Struktur

%Vor%


(Gesucht) JSON-Ausgabe

%Vor%     
vsync 03.11.2011, 10:06
quelle

4 Antworten

5

Wenn Sie sich davon überzeugen können, jQuery zu verwenden, versuchen Sie dies :

%Vor%     
Yoshi 03.11.2011, 10:52
quelle
9

Ich bin neu hier und ich konnte nicht finden, wie man einen Kommentar schreibt. Ich wollte dich fragen, ob das immer die Struktur ist, egal in welcher Abteilung. Wenn die Antwort nein ist, dann lies meine Antwort nicht :).

Zuallererst habe ich eine Funktion getPrevious hinzugefügt, weil direktes Abrufen des vorherigen Geschwisters einen Textknoten zurückgibt. Als nächstes habe ich die Rekursion etwas geändert, da es sich nicht um eine einfache Rekursion handelt, unterscheidet sich das Json-Format (die Eltern-Kind-Beziehungen) vom HTML-Format. Ich habe es für 2 weitere Levels probiert und es ist ok. Ich hoffe, es ist hilfreich und tut mir leid, wenn es nicht so ist.

%Vor%     
fortune 03.11.2011 11:52
quelle
1
%Vor%

Sie erhalten:

[{"UL": [{"LI": [{"DIV": []}]}, {"LI": [{"DIV": []}, {"UL": [{" LI ": [{" DIV ": []}]}, {" LI ": [{" DIV ": []}]}, {" LI ": [{" DIV ": []}, {" UL ": [{" LI ": [{" DIV ": []}]}, {" LI ": [{" DIV ": []}]}, {" LI ": [{" DIV ": [] }]}, {"LI": [{"DIV": []}]}]}}}, {"LI": [{"DIV": []}]}]}]}, {"LI" : [{"DIV": []}]}, {"LI": [{"DIV": []}}}}]

    
user3051730 29.08.2015 15:50
quelle
0

Live-Beispiel

%Vor%     
Raynos 03.11.2011 11:51
quelle

Tags und Links