URL: https://www.overclockers.at/coding-stuff/erledigt_html_mit_js_parsen_67787/page_1 - zur Vollversion wechseln!
Hat jemand ne Idee wie man aus JS heraus ein HTML-File parsen kann?
In dem File ist ein Table drinnen der mich interessiert. Ich hätt mir sowas gedacht, wie mit dem FSO das File öffnen, alles vor und nach dem Table wegzuhauen, und dann das Ding als XML zu laden.
Hat jemand ne bessere Idee?
wenn wir mal die bugs der browserhersteller in der vergangenheit ausser acht lassen, hast du mit JS keine möglichkeit eine datei zu öffen und deren inhalt zu lesen.
das einzige das mir einfällt, wäre, wenn js und html vom selben server in ein frameset oder iframe geladen werden, dann sollte es möglich sein, das das script auf das DOM des HTML zugreifen kann.
die HTMLDateien rennen auf keinem Server und nix, es muss auch nicht JS sein kann auch VB oder was auch immer sein.
Im Endeffekt will ich den Inhalt von der Table von der einen Seite, mit dem Inhalt der Table auf der 2. Seite vergleichen.
wenns VB (bzw asp) oder auch php sein kann - wo genau ist dann das problem?
ASP kanns nicht sein, weils nur 2 Files sind nicht mehr, kein IIS, etc.
Was ich wissen wollte ist, obs ne bessere Variante gibt, als das HTML als XML zu laden, da das HTML nicht unbedingt XHTML konform kein muss, <br> innerhalb von td etc.
wenn du nur den inhalt zweier tabellen vergleichen willst gibts tatsächlich ne bessere variante: nämlich alles in eine variable, dabei komplett die html-tags strippen, und du kannst schon mit dem vergleich beginnenZitat von YeahmanASP kanns nicht sein, weils nur 2 Files sind nicht mehr, kein IIS, etc.
Was ich wissen wollte ist, obs ne bessere Variante gibt, als das HTML als XML zu laden, da das HTML nicht unbedingt XHTML konform kein muss, <br> innerhalb von td etc.
Zitat von watchoutwenn du nur den inhalt zweier tabellen vergleichen willst gibts tatsächlich ne bessere variante: nämlich alles in eine variable, dabei komplett die html-tags strippen, und du kannst schon mit dem vergleich beginnen
wenn du die zelleninhalte in ein (zweidimensionales) array schreibst solltest du schön vergleichen können, und wenn dir nix anderes einfällt kannst du damit die tabelle rekonstruieren - wenn zellen mit spans vorkommen musst du dir was überlegen...Zitat von Yeahmanna so war das nicht gemeint, ich muss schauen, ob gewisse Zelleninhalte von der einen Tabelle in der anderen vorkommen, und wenn ja ein paar Daten, zurück auf eine 1. Tabelle schreiben.
Zitat von watchoutwenn du die zelleninhalte in ein (zweidimensionales) array schreibst solltest du schön vergleichen können, und wenn dir nix anderes einfällt kannst du damit die tabelle rekonstruieren - wenn zellen mit spans vorkommen musst du dir was überlegen...
das is ja nicht dein ernst oder? was viel schöneres als eine tabelle kann dir eh kaum passieren...Zitat von Yeahmannochmal:
meine Frage bezieht sich darauf wie man am intelligentesten an die Inhalte in den Tables rankommt, wie ich dann vergleiche usw. ist mir schon klar.
ok vergiss es, wennst das nicht verstehen willst.
1. ich red ne ne Stunde rum, ich denke ich habs im vorigen Posting schon erklärt, ich will auf die Zelleninhalte kommen, ohne den Parser selber zu schreiben
2. der Threadtitle ist richtig, wennst blos das 1. Posting lesen würdest
3. Wennst mir nicht helfen willst, das sag wenigstens gar nix
Sorry, aber ich reagiere ein bischen allergisch auf solche herablassenden Kommentare. (vorallem seitdem der Umgangston in dem Forum immer mehr gegen 0 geht)
1. und wie willst du auf die zelleninhalte kommen ohne einen "parser"...Zitat von Yeahmanok vergiss es, wennst das nicht verstehen willst.
1. ich red ne ne Stunde rum, ich denke ich habs im vorigen Posting schon erklärt, ich will auf die Zelleninhalte kommen, ohne den Parser selber zu schreiben
2. der Threadtitle ist richtig, wennst blos das 1. Posting lesen würdest
3. Wennst mir nicht helfen willst, das sag wenigstens gar nix
Sorry, aber ich reagiere ein bischen allergisch auf solche herablassenden Kommentare. (vorallem seitdem der Umgangston in dem Forum immer mehr gegen 0 geht)
der code is weder getestet noch irgendwas, aber ich schätze _damit_ kannst mal was anfangenCode:##-- html-file 1 --## <table> <tr> <td>a</td> <td>b</td> </tr> <tr> <td>c</td> <td>d</td> </tr> </table> ##-- html-file 2 --## <table> <tr> <td>b</td> <td>a</td> </tr> <tr> <td>c</td> <td>d</td> </tr> </table> ##-- Script --## function vergleich () { var int_i = 0; var str_taga = ""; var str_tagb = ""; while (window.frame1.document.all.tags("td")[int_i]) { if (window.frame2.document.all.tags("td")[int_i]) { str_taga = window.frame1.document.all.tags("td")[int_i].innerText; str_tagb = window.frame2.document.all.tags("td")[int_i].innerText; // mach irgendwas vergleichen tun... :P } int_i++; } } // ab ie5 und ns6x geht auch folgender code: // window.frame1.document.getElementsByTagName("td")[int_i].firstChild.nodeValue
Zitat von watchoutps: wennst das nächste mal wieder hochfährst überleg mal das andere leute oft fürs coden geld bekommen, du kriegst hier nen code gratis, plus gratis support - der oft auch noch 24h erreichbar ist
auch wenns ein simples stück dreckiger code is, geh zu nem progger und frag ihn ob er dir da weiterhelfen kann - der sagt nur "mein stundensatz is xx euro - los gehts"
auch ein lösungsansatz kostet zeit und damit geld, und du, da du ja programmierer bist wie du sagst solltest das wohl am besten wissen "."Zitat von Yeahman1. Bin ich Programmierer
2. Wollte ich nie Code sondern nur einen Lösungsansatz, steht aber im 1. Post
wenn man keinen ext. html parser findet, ist die lösung mit dem Browser-DOM (wie ich sie oben schon erwähnt habe und watchout implementiert hat) möglich, wenn auch nicht die schönste. will man watchouts code cross-browser kompatibel machen, sollte das mit der W3C-DOM funktion getElementsByTag() nicht alzu schwer sein.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025