phpbar.de logo

Mailinglisten-Archive

[php] Xml File parsen. Probleme mit <p>

[php] Xml File parsen. Probleme mit <p>

A. Fridhi mailing at scriptfabrik.com
Mon Okt 27 11:07:20 CET 2003


Hallo,

ich habe ein kleines Script geschreiben das ein XML File parst. Das klappt
soweit auch wunderbar. Allerdings schneidet er mit <p> und </p> raus.
Beispiel XML File:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE isdmeldung SYSTEM "../dtd/isd_news.dtd">
<isdmeldung>
<sidstory>
  <id>108319</id>
  <prio>3</prio>
  <verein1>Deutschland</verein1>
  <verein2></verein2>
  <topmeldung>N</topmeldung>
  <datetime>20031016141400</datetime>
  <rubrik>FB-EM 2004</rubrik>
  <bereich>fbem2004</bereich>
  <sportart>Fu&#223;ball</sportart>
  <kategorie>Nationalmannschaft</kategorie>
  <headline>DFB-Team bei EM 2004 nicht gesetzt</headline>
  <subteaser>Der deutschen Nationalmannschaft droht bei der
Europameisterschaft 2004 in Portugal eine schwere Vorrundengruppe. Das
DFB-Team wird nicht gesetzt und k&#246;nnte schlimmstenfalls erst im dritten
Lostopf platziert werden.</subteaser>
  <meldung><p>F&#252;r die deutsche Nationalmannschaft kann es bei der
Europameisterschaft in Portugal schon in der Vorrunde wirklich schwierig
werden. Das Team von Teamchef Rudi V&#246;ller kann nach den Kriterien der
Europ&#228;ischen Fu&#223;ball-Union (UEFA) bei der Auslosung am 30.
November nicht davon ausgehen, als einer der vier Gruppenk&#246;pfe gesetzt
zu werden. Diese Positionen bleiben f&#252;r die EM-Endrunde (12. Juni bis
4. Juli) neben Titelverteidiger Frankreich und Gastgeber Portugal wohl
Schweden und Tschechien vorbehalten.</p><p>  In der relevanten
UEFA-Rangliste der m&#246;glichen EM-Teilnehmer steht die DFB-Auswahl sogar
nur auf Rang neun. Sollten sich die Spanier (gegen Norwegen) und die
T&#252;rken (Lettland) in den Play-off-Spielen am 15./16. sowie 18./19.
November f&#252;r die Euro qualifizieren, w&#252;rde das deutsche Team erst
in Lostopf drei auftauchen. Theoretisch w&#228;re somit eine
Vorrunden-Gruppe mit Titelverteidiger Frankreich, Italien und den von Otto
Rehhagel trainierten Griechen m&#246;glich.</p><p>Test Test</p></meldung>
  <editor>us</editor>
</sidstory>
<timestamp>
  <datum>2003-10-24</datum>
  <zeit>13:04</zeit>
</timestamp>
  <fotos>
<!-- Bild oder Definition nicht verfügbar. sid-redaktionssystem -->

  </fotos>
<copyright>
  <ctext>&#169; 2003 Sport-Informations-Dienst, Neuss</ctext>
  <clink>http://www.sid.de</clink>
  <cmail>info at sid.de</cmail>
</copyright>
</isdmeldung>

-- 
Da kommt dann nur:
F&#252;r die deutsche Nationalmannschaft kann es bei der Europameisterschaft
in Portugal schon in der Vorrunde wirklich schwierig werden. Das Team von
Teamchef Rudi V&#246;ller kann nach den Kriterien der Europ&#228;ischen
Fu&#223;ball-Union (UEFA) bei der Auslosung am 30. November nicht davon
ausgehen, als einer der vier Gruppenk&#246;pfe gesetzt zu werden. Diese
Positionen bleiben f&#252;r die EM-Endrunde (12. Juni bis 4. Juli) neben
Titelverteidiger Frankreich und Gastgeber Portugal wohl Schweden und
Tschechien vorbehalten.

raus. Die <p></p> sind dann auch nicht mehr in dem Text zu finden.
Hat einer eine Ideee was ich falsch mache ?
Hier mal der Code den ich benutze:

function readDatabase($filename)
{
    // Read the XML table
    $data = implode("",file($filename));
    $parser = xml_parser_create();
    xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
    xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
    xml_parse_into_struct($parser,$data,$values,$tags);
    xml_parser_free($parser);

    // loop through the structures
    foreach ($tags as $key=>$val)
    {
      if ($key == "isdmeldung")
        {
          $ranges = $val;
          for ($i=0; $i<count($ranges);$i+=2)
          {
            $offset=$ranges[$i];
            $length = $ranges[$i + 1] - $offset;
            $tempdb[]=array_slice($values, $offset, $length);
          }
        }
    }
    return $tempdb;
}

Danke für die Hilfe
Alexander



php::bar PHP Wiki   -   Listenarchive