Parsen von HTML per Javascript

torax13

Erfahrenes Mitglied
Hallo,

ich bin dabei aus einer HTML Datei per Javascript Daten auszulesen. Einen Großteil der Daten kann ich mitlerweile (hab bisher nichts mit Javascript gemacht) auslesen. Ich verwende dazu XPath und die document.evaluate() Funktion.
Nur bei folgenden HTML Code will es mir nicht gelingen. Die Daten stehen hier in eine Tabelle, wobei in der 1. Zelle der Typ und in der 2. Zelle der Wert steht:
Code:
<table align="center" width="600">
  <tbody>
    <tr> ......
    </tr>
    <tr align="center">
      <td>Typ 1
            <br>Typ 2
            <br>Typ 3
     </td>
     <td>15
       <br>7
       <br>2
       <br>1
     </td>
  </tr>
</tbody>
</table>
"Type 1" hat also den Wert 15, "Typ 2" den Wert 2 und so weiter. Wobei allerdings auch mal ein Typ ausgelasen werden kann, d.h. an der 3. Stelle steht nicht unbedingt Typ 3.

Ich hab schon alles mögliche versucht um an die Daten zukommen, zur Not auch als String um dann manuell zu trennen/zuzuweisen, aber ich komm einfach nicht an den Inhalt eines solchen <td> Elements. Das Element selbt kann ich per XPath anwählen, aber von da an komm ich nicht weiter.

Achja, das ganze läuft in Greasemonkey.

Für jeden Hinweis dankbar.
Torax
 
Hi,

versuch mal, über rows und cells auf die gewünschten Zellen zuzugreifen.

Wenn zum Beispiel die Inhalte aus den beiden Zellen der letzte Zeile der ersten Tabelle im Dokument
ermittelt werden sollen:
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
  <!--
function CellContent(){
  var objTable = document.getElementsByTagName("table")[0].getElementsByTagName("tbody")[0];
  var arrResult = new Array();
  arrResult[0] = objTable.rows[objTable.rows.length-1].cells[0].innerHTML;
  arrResult[1] = objTable.rows[objTable.rows.length-1].cells[1].innerHTML;

  alert(arrResult[0] + "\n" + arrResult[1]);
}
 //-->
</script>
</head>
<body>
<button onclick="CellContent()">CellContent()</button>
<table align="center" width="600">
  <tbody>
    <tr><td>1</td><td>2</td></tr>
    <tr align="center">
      <td>Typ 1
        <br>Typ 2
        <br>Typ 3
     </td>
     <td>15
       <br>7
       <br>2
       <br>1
     </td>
  </tr>
</tbody>
</table>
</body>
</html>
Vielleicht hilft dir das weiter.

Ciao
Quaese
 
Vielen Dank, Dein Hinweis hat mich auf den richtigen Weg gebracht. Ich kann das nun auslesen und per .split('<br>'); auf zerlegen.

Vielen Dank

Torax
 

Neue Beiträge

Zurück