Tobby: Text an bestimmter Stelle im Satz auslesen

Hallo,
ich habe eine Datei mit folgendem Satzaufbau
<tr><td>...</td><td>...</td>......    </tr>
Jetzt möchte ich den Inhalt lesen der innerhalb des 6. Paares <td>...</td>
steht.
Wie mache ich dies am besten?
Gruß
Tobby

  1. Wie mache ich dies am besten?

    Mit einem XML- oder HTML-Parser.

    SimpleXML oder Simple HTML DOM.

    1. Danke,

      Wie mache ich dies am besten?

      Mit einem XML- oder HTML-Parser.

      SimpleXML oder Simple HTML DOM.

      Geht dies aber auch, wenn ich eine andere Struktur habe,
      z.B
      .... $a...$e .... $a....$e
      und ich will den Inhalt des 6. Blocks $a...$e?
      Gruß
      Tobby

      1. .... $a...$e .... $a....$e
        und ich will den Inhalt des 6. Blocks $a...$e?

        Wenn .... ...  Auslassungszeichen für beliebigen HTML- oder XML-Code sind, ja.

        Ansonsten kommst du mit Stringfunktionen oder PCRE weiter. Aber diese Keule ist idR. schwerer greifbar und unzuverlässiger als ein Parser, der genau für diesen Zweck gedacht ist.

        Wenn du HTML hast, nimm einen HTML-Parser, wenn du XML hast, einen XML-Parser, wenn du CSV hast einen CSV-Parser - so einfach ist das.

  2. Hi!

    Jetzt möchte ich den Inhalt lesen der innerhalb des 6. Paares <td>...</td> steht.
    Wie mache ich dies am besten?

    Die erste Idee wäre sicher ein Regulärer Ausdruck. Wenn die Daten jedoch auch gemäß den XML-Regeln notiert sind, dann geht auch SimpleXML und ein XPath-Ausdruck.

    Lo!

    1. Hi,

      Die erste Idee wäre sicher ein Regulärer Ausdruck.

      Müsste ich dann 5 Mal das Paar angeben in der Art
      ^.*$a.*$e$a.*$e$a.*$e$a.*$e$a.*$e$a(.*)$e
      Gruß
      Tobby

      1. Die erste Idee wäre sicher ein Regulärer Ausdruck.
        Müsste ich dann 5 Mal das Paar angeben in der Art
        ^.*$a.*$e$a.*$e$a.*$e$a.*$e$a.*$e$a(.*)$e

        Ich höhre Zawinsiki schon wieder rufen - mit dem Ausdruck (nichtmal in "der Art") wirst du bei deinem Problem nicht weit kommen. Mit SimpleXML und XPath wärest du mit etwa 3 Zeilen bereits am Ziel.

      2. Hi!

        Müsste ich dann 5 Mal das Paar angeben in der Art
        ^.*$a.*$e$a.*$e$a.*$e$a.*$e$a.*$e$a(.*)$e

        Nein, es gibt so genannte Quantifizierer (quantifier).

        Lo!

        1. Müsste ich dann 5 Mal das Paar angeben in der Art
          ^.*$a.*$e$a.*$e$a.*$e$a.*$e$a.*$e$a(.*)$e

          Nein, es gibt so genannte Quantifizierer (quantifier).

          Quantifikator oder Quantor :) aber das mit dem relateinisieren klappt oft nicht so gut. Es kann also durchaus sein, dass "Quantifizierer" bald mal richtig ist. Aber auch "Identifizierer" ansatt "Identifikator" ist scheinbar schont weit verbreitet.

  3. Hello,

    ich habe eine Datei mit folgendem Satzaufbau
    <tr><td>...</td><td>...</td>......    </tr>
    Jetzt möchte ich den Inhalt lesen der innerhalb des 6. Paares <td>...</td>
    steht.
    Wie mache ich dies am besten?

    Ganz ohne XML-Parser oder reguläre Ausdrücke geht es außerdem auch:
    Du könntest explode am '<td>' anwenden und dann das Element[6] am '</td>' abschneiden, z.B. mit strpos() und substr() oder mit einem weiteren explode.

    http://www.php.net/manual/en/function.explode.php

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Ganz ohne XML-Parser oder reguläre Ausdrücke geht es außerdem auch:
      Du könntest explode am '<td>' anwenden und dann das Element[6] am '</td>' abschneiden, z.B. mit strpos() und substr() oder mit einem weiteren explode.

      Oder aber mit preg_match_all() ohne quanftifier arbeiten und den 6. td-Inhalt verwenden.

      Aber es gibt auch Leute, die mit einem spannungsprüfer Schrauben reindrehen, und sich wundern, wenn die Klinge bricht :p