Hallo Gemeinde!
ich habe folgende Aufgabe und stehe etwas auf dem Schlauch:
Es existiert eine automatisch generierte HTM-Datei, aus der ich die Klartext-Informationen herauslesen möchte. Dazu habe ich mir gedacht, wäre wohl das DOM am besten geeignet.
Im allgemeinen ist die Datei als Tabelle mit teilweise ineinander verschachtelten Zellen aufgebaut. Nur die jeweils "innerste" dieser Zellen enthält Text, den ich extrahieren möchte.
Meine Idee wäre es nun, von oben herab den DOM-Baum herunterzulaufen und an jedem Knoten zu prüfen, ob dieser einen childNode hat, oder nicht und falls nicht, so soll der textContent als nächster Eintrag in ein Array geschrieben werden.
Hier ein Beispiel zu solch einer Tabelle:
HTML-Code:
<table width="100%" cellpadding="0" border="0">
<col width="5%"/>
<col width="95%"/>
<tr>
<td colspan="1" rowspan="1"/>
<td colspan="1" rowspan="1" style="background-color:lightgrey">
<b>
Linked Product
</b>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table width="100%" cellpadding="0" border="0">
<col width="5%"/>
<col width="25%"/>
<col width="70%"/>
<tr>
<td colspan="1" rowspan="1"/>
<td colspan="1" rowspan="1">
<b>
Endplatte.1
</b>
</td>
<td colspan="1" rowspan="1">
<table width="100%" cellpadding="0" border="0" style="font-size:smaller">
<col width="30%"/>
<col width="70%"/>
<tr>
<td colspan="1" rowspan="1">
Maturity
</td>
<td colspan="1" rowspan="1">
IN_WORK
</td>
</tr>
</table>
<table width="100%" cellpadding="0" border="0" style="font-size:smaller">
<col width="30%"/>
<col width="70%"/>
<tr>
<td colspan="1" rowspan="1">
Major Version
</td>
<td colspan="1" rowspan="1">
---
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
Meine bisherigen Versuche erzeugen mir aber eine Ausgabe, die mir den Textinhalt jeder Zelle (jedes <td>...</td>) ausgibt, selbst wenn darin noch weitere Zellen stehen. Dies führt dazu, dass die Textinhalte mehrfach in das Array gelesen werden.
Ich hoffe, ich habe das jetzt erstmal gut genug erklärt, vielleicht kann mir ja jemand von euch weiterhelfen. Falls ich Informationen ergänzen soll, dann sagt bitte einfach bescheid.
Viele Grüße,
kratsching