Ich benutze Nokogiri, um HTML-Daten in YAML-Strukturierung zu analysieren. Ich habe Probleme zu sehen, wie man HTML-Tabellen im YAML-Format lesen kann. Jeder mit vorheriger Erfahrung? Wenn ja, bitte etwas Licht werfenHTML-Tabelle zu YAML-Konvertierung
Antwort
Ich habe beide Richtungen (YAML -> HTML und HTML -> YAML) getan und die YAML zu HTML ist eigentlich in der ruamel.yaml.cmd
Paket, von dem ich der Autor bin.
Das HTML ist eine Tabelle, die gegeben ist, ich nehme an, es hat eine Kopfzeile. So können nehmen Sie die folgende Tabelle mit einer Kopfzeile mit Elementen A
, B
und C
und zwei Datenreihen von Zahlen:
A B C
1 2 3
5 6 7
gibt es mehrere Möglichkeiten, wie Sie dies in YAML darstellen können, sind hier zwei Beispiele.
oberste Ebene ist eine Abbildung, der Wert Header der Schlüssel und die Spalte der Wert in einer Sequenz:
A: [1, 5] B: [2, 6] C: [3, 7]
oberste Ebene ist die Liste, und jedes Element ist eine Abbildung von Header-Wert, um Daten Wert:
- A: 1 B: 2 C: 3 - A: 5 B: 6 C: 7
ich finde die zweite intuitiver, aber es ist ausführlicher als die Header-Strings Als Skalare in jedem Sequenzelement wiederholt werden.
Wenn Ihre Tabelle Zeilen- "Header" und Spaltenüberschriften hat, können Sie sich eher für ein Toplevel-Mapping entscheiden, bei dem der Schlüssel eine Sequenz aus Zeilen- und Spaltenkopf und der Wert der Inhalt der Zelle ist.
Tabelle:
A B
K 1 2
L 5 6
entsprechende YAML:
[A, K]: 1
[A, L]: 5
[B, K]: 2
[B, L]: 6
Bitte beachten Sie, dass bei den meisten YAML Kipper Sie keine Kontrolle über die Reihenfolge der Tasten in der Abbildung Sie produzieren möchten haben, ohne dass die YAML uglifying mit Anhängen.
Sobald Sie sich für das Ausgabeformat entschieden und die Tabelle geparst haben, sollte es relativ einfach sein, über die Zeilen/Spalten und Zellen der Tabelle zu gehen, um die Datenstruktur zu erstellen, die nach YAML so ablegt, wie Sie es wollen ist, was ich für die obigen Beispiele getan habe, mit Python und ruamel.yaml
)
- 1. wie man dynamische Reihe mit Eingabefeldern in HTMLtabelle von gegebener Reihe
- 2. jQuery zu PHP zu Highcharts
- 3. Rückkehrliste zu JSON zu Angularjs
- 4. zu XML Dokument zu speichern
- 5. Schwierigkeit, zu TabBarController zu kommen
- 6. NSArray zu NSMutableArray zu NSString
- 7. CURL zu POST zu JIRA
- 8. UIInage zu NSDate zu NSString zu JSON String gibt Nullwert
- 9. tcl exec zu stdout Bedarf umgeleitet Ergebnis zu zu speichernden
- 10. PHP zu öffnen, zu lesen, zu/von mysql Datenbank
- 11. Polymer: Wie HTML zu Bildschirm zu loopen und zu rendern
- 12. 3 Spalten CSV, zu Adjazenz-Matrix, zu Networkgraph, zu Arcplot
- 13. NSString zu CLLocationDegrees zu NSString ist Wert zu verändern
- 14. Empfehlung zu Optimierungsroutine/Einschränkungen zu verwenden
- 15. mod_rewrite Regel zu Abfrage Zeichenfolge zu verhindern
- 16. Haskell: zu reparieren oder nicht zu beheben
- 17. Wie Boost zu zwingen, rpath zu verwenden?
- 18. Ist das zu unveränderbar zu const?
- 19. mit Logrotate zu Apache Logs zu drehen
- 20. Vorteil zu SELECT SELECT DISTINCT zu SELECT
- 21. Linq zu Entitäten Inner Join zu Datagrid
- 22. Wie Gurke zu einer Seite zu sagen?
- 23. genaue Ordner zu CSV zu Python importieren
- 24. Nicht zu Kafka Broker zu produzieren java.nio.BufferUnderflowException
- 25. Pipe-Ausgabe zu Datei zu Funktion
- 26. Git Filter-Zweig zu Stammordner zu entfernen
- 27. JavaScript, wie% 20 zu Raum zu ersetzen
- 28. Was zu importieren, um IOUtils.toString() zu verwenden?
- 29. DAO zu .mdb, zu ADO Vergleich
- 30. Zu GAC oder nicht zu GAC?