# XML gästebuch



## bigair (24. Oktober 2004)

moin

ich will ein gb mit xml machen, alles funktioniert bis jetzt, ausser das auslesen des xml files.
Bei einem Eintrag wird an ein xml file der beitrag angehängt, nur wir bekomm ich dann das exteren xml file in die html datei?

mfg
bigair


----------



## Bubblez (25. Oktober 2004)

dazu verwendest du am einfachsten eine xml-parser-class.
eine solche findest du hier:
http://freshmeat.net/projects/xmlparserclass/
mit einer kurzen beschreibung dazu.

hier das ganze package mit example zum download:
http://www.phpclasses.org/browse/package/4.html


----------



## KoMtuR (25. Oktober 2004)

Oder du liest das Tutorial hier auf tutorials.de


----------



## bigair (26. Oktober 2004)

thx
werd ich mir mal anschaunn 

mfg
bigair


----------



## bigair (26. Oktober 2004)

moin
jetzt hab ich das ding so weit, das ich das xml document parsen kann
zb so:


```
<?php
        foreach($werte as $w) { 
          print "<tr>";
          print "<td>" . $w["value"] . "</td>";
          print "</tr>";		  
        }       
   ?>
```

jetzt wird die tabel erzeugt, nur es sind imma leere zeilen dabei (logisch, weil nicht alle xml tags einen inhalt haben).
kann man das jetzt irgentwie umgehen?

mfg
bigair


----------



## KoMtuR (26. Oktober 2004)

wie hast du es ausgelesen?

Mit SimpleXML sollte das nicht passieren  Zumindest ist es in meinen ganzen Scripten noch nie vorgekommen. Mittels DOM ists ein wenig aufwendiger, weil da immer noch eine Zeile übergeben wird, wo drin steht, was da für ein Typ gerade kam. Also mit was hast du es denn ausgelesen?


----------



## bigair (26. Oktober 2004)

hier bitteschön  


```
<?php
      $xmlparser=xml_parser_create();
      $daten = implode(file("daten.xml"), "");
      xml_parse_into_struct($xmlparser, $daten, &$werte, &$index);
      xml_parser_free($xmlparser);
    ?>

    <table border="0" width="500">
      <?php
        foreach($werte as $w) {
		  if($w["value"]!=false){
	      print "<tr>";
          print "<td>" . $w["value"] . "</td>";
          print "</tr>";
		  }
        }       
      ?>
    </table>
```


----------



## KoMtuR (26. Oktober 2004)

füg mal vor dem xml_parse_into_struct diese Zeile ein:

```
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
```

Das sollte funktionieren.


----------



## bigair (26. Oktober 2004)

Warning: xml_parser_set_option(): supplied argument is not a valid XML Parser resource in C:\apachefriends\xampp\htdocs\gb\gb.php on line 36
hmmm irgentwas scheint da nicht ganz zu funktionieren
is ein apache 2 mit php5

mfg
bigair

===========================================
edit: jetzt gehts 
 xml_parser_set_option($XMLparser, XML_OPTION_SKIP_WHITE, 1);
thx


----------



## KoMtuR (26. Oktober 2004)

ah mist ich wollt das doch noch ändern. ne minute bevor ich mein Beitrag schrieb, dachte ich mir, dass ich die Parservariable noch ändern muss ^^

Ich krieg langsam Angst das ich alt werde.


----------



## bigair (29. Oktober 2004)

so, jetzt geht das gb schon, nur ein paar kleinigkeite will ich noch ändern:
als erster einmal, mal kann keinen zeilenumbruch machen, irgentwie logisch: ich lese mit php (mit get) den inhalt des textfeldes aus. Wenn ich ein <br> im textfeld mache, dann kommt das in die xml datei und sieht dann so aus: <eintrag> text... <br></eintrag>, das gefällt dem xml parser dann nicht so gut   ,...also wie kann man das problem beheben.

mfg
bigair


----------

