philippo: Problem beim String vergleichen

Hallo,

ich habe folgende (XML) Datei:

<?xml version="1.0" ?>

  • <fcgservice>
  • <news>
      <id>article_1</id>
      <sparte>top</sparte>
      <datum>21.05.2004</datum>
      <img />
      <titel>sich_durch</titel>
      <msg>Hier_kommt_der_welt</msg>
      </news>
  • <news>
      <id>article_2</id>
      <sparte>presse</sparte>
      <datum>21.05.2004</datum>
      <img />
      <titel>sich_durch</titel>
      <msg>Hier_kommt_der_welt</msg>
      </news>
      </fcgservice>

Und folgenden PHP Code:

<?php
 $data_file  = file ('../database/news.xml');
 $data_count = count ($data_file);

if ($data_file[4] == 'top') 7 echo 'ja'; }
?>

Nun leider funktioniert das ganze nicht. Ich möchte nicht den PHP XML parser verwenden, da es zu aufwenig wäre bei der kleinen Datenmenge. Aber die Strings sind glich, doch der Vergleich sagt mir NEIN! Warum ????

Gruß
Philipp

  1. Hallo Philippo,

    if ($data_file[4] == 'top') 7 echo 'ja'; }

    dann lass dir doch mal $data_file[4] ausgeben - da dürfte dann etwa '<sparte>top</sparte>' drinstehen (ggf. noch trim() auf $data_file[4] anwenden) - warum sollte nur 'top' drinstehen? (außerdem sollte die 7 wohl eine Klammer sein)

    Nun leider funktioniert das ganze nicht. Ich möchte nicht den PHP XML parser verwenden,

    warum nicht? so wie du es jetzt machst, bist du darauf angewiesen, dass alles in der richtigen Zeile steht...

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
  2. Hallo,

    <?xml version="1.0" ?>

    • <fcgservice>
    • <news>
        <id>article_1</id>
        <sparte>top</sparte>
        <datum>21.05.2004</datum>
        <img />
        <titel>sich_durch</titel>
        <msg>Hier_kommt_der_welt</msg>
        </news>
    • <news>
        <id>article_2</id>
        <sparte>presse</sparte>
        <datum>21.05.2004</datum>
        <img />
        <titel>sich_durch</titel>
        <msg>Hier_kommt_der_welt</msg>
        </news>
        </fcgservice>

    Und folgenden PHP Code:

    <?php
    $data_file  = file ('../database/news.xml');
    $data_count = count ($data_file);

    if ($data_file[4] == 'top') 7 echo 'ja'; }
    ?>

    Soweit ich richtig zählen kann steht in $data_file[4]=="<sparte>top</sparte>"."\n",
    falls du windows verwendest stehen am ende zwei steuerzeichen.
    versuch mal die funktion chomp().

    gruss

    --
    no strict;
    no warnings;
    Über eine Rückmeldung freut sich später jeder, der das gleiche Problem hat und im Archiv nach einer Lösung sucht.