Was genau muss ich mit xml-Parserdatei tun?

L

linkct

Guest
Hallo,

auf meiner Odyssee zur Erkenntnis darüber, wie ich meinen XML-Datensatz mit vorliegender DTD-Datei browsertauglich machen kann, bin ich auf einen vielversprechenden Weg gestoßen: Hier im Forum empfahl "aightmaster" am 4.1.04 unter "Webmaster allgemein" den Parser von Stefan Fischer für einen mir vergleichbar erscheinenden Fall ( http://www.stefan-fischer.net/content.php?topic=rssparser ).

So weit so gut. Habe das alles runtergeladen. Leider weiß ich nun nicht, wie ich weiter vorgehen muss: was genau fange ich jetzt damit an? Hier die Parser-Datei, da meine XML´s und die DTD. Muss ich den Parser-Code jetzt irgendwo einbauen oder anpassen? Einfach nur anklicken hilft leider nicht.
blink.gif

Kann mir da eventuell ein freundlicher Mensch auf die Sprünge helfen?
Christoph
 
Ich kenne das besagte Programm nicht. Mein Weg ist auf XML mit PHP parsen nachzulesen. Diese Scripts produzieren aus einem beliebigen XML Feed einen Array, welcher der XML Hierarchie folgt. Diesen kannst du dann beliebig verwenden. Dazu ist das dtd irrelevant, da das Scipt einfach die Werte ausliest.
Alternativ kannst du ein CSS oder XSL Stylesheet erstellen, welches das XML direkt für die Browserausgabe formatiert. Aber Achtung: viele Browser unterstützen dies noch nicht, also würd ich Variante 1 bevorzugen. Infos dazu findest du in dem 4 Euro http://www.knowware.de Xml-Buch oder überall gratis im Internet.
 
Danke für den Tipp! - Zu den unter "Wie parse ich XML mit PHP" aufgeführten Codes eine vielleicht zu simplre Frage: Was muss ich ich damit konkret "tun", damit die losparsen? Die Antwort auf diese vielleicht zu simple Frage steht nämlich leider nirgendwo geschrieben, wo Parser-Codes aufgeführt sind. Leider finde ich nirgendwo sowas wie eine "First-step-by-step"-Anleitung, nur Auskünfte "dass", aber nicht "wie" es damit geht, oder wenigstens wie ich damit anfangen muss. Habe schon zwei XML/XSL-Bücher gekauft, selbst darin steht es nicht.
 
huh.gif

Schön, danke sehr... - aber es scheint mit mir weitaus schlimmer auszusehen als Du denkst... - mit meiner Frage meine ich: was fange ich jetzt mit diesen Schnipseln als Nächstes an? Was ich sehe sind Texte. Von denen weiß ich, dass es Passagen aus Programmdateien sind. Wo gehören die hin? Was muss ich damit tun, damit sie das tun was da freundlicherweise geschrieben steht -d.h. damit sie xml umwandeln?
Drastisch formuliert: Wenn ich die Texte ausdrucke und nebeneinanderlege wird sich wohl nicht viel tun...
Vermutlich muss ich sie in eine andere Datei einbauen. Oder soll ich sie so wie sie sind als PHP abspeichern und dann?
 
Was fange ich jetzt mit diesen Schnipseln als Nächstes an?
Wo gehören die Funktionen hin?
Was muss ich damit tun, damit sie xml umwandeln?
Oder soll ich sie so wie sie sind als PHP abspeichern und dann?

Ok, ich bin recht dankbar über solches Feedback, denn ich habs halt immernoch für jemanden ausgelegt, der Prgrammieren kann.

Du sollst die Funktion kopieren in deinen Programmcode einbauen (oder als xml2array.php speichern und includen) und dann einfach mal die Testfunktion kopieren und ausprobieren, da musst du zuerst datei.xml in deinexmldateiname.xml umbenennen und das sollte es sein.

Woher kommt denn das XML?

Werde den Beitrag bei Gelegenheit entsprechend Ausformulieren. Eigentlich könnte ich dir jetzt alles erklären, und du editierst den Beitrag dann fertig... ;-)

Du bist keine Programmierer? Du musst mir halt auch noch sagen, auf welchem Level du dich bewegst, da ich halt immer denke etwas ist einfach, wenn ich weiss wies geht.
 
mhhh. funktioniert das auch, wenn es noch weiter verschachtelt ist? Also z.B.

<unterfeld>Text 1</unterfeld>
<unterfeld_stufe_2>text a</unterfeld_stufe_2>
<unterfeld_stufe_2>text b</unterfeld_stufe_2>
<unterfeld>Text 2</unterfled>

Franz
 
"Du sollst die Funktion kopieren in deinen Programmcode einbauen (oder als xml2array.php speichern und includen) und dann einfach mal die Testfunktion kopieren und ausprobieren, da musst du zuerst datei.xml in deinexmldateiname.xml umbenennen und das sollte es sein."

In welchen Programmcode denn einbauen und was dann damit tun? Ich habe doch nur die XML-Dateien und die dtd.

"Woher kommt denn das XML?"

Es sind Länder- und Städteinfos von "Columbus". Die Firma hat zwar selbst schon alles umgewandelt (ganz viele HTMLs und eine CSS-Datei) und online gestellt, aber wenn man eine Lizenz im Rahmen eines Affiliate-Programms erwirbt, tun sie hartnäckig so als wäre man mit XML- und DTD-Dateien bestens versorgt. Oder man muss auf eine fertige Seite von ihnen verlinken, kann am Ergebnis so aber natürlich nichts mehr ergänzen.

"Werde den Beitrag bei Gelegenheit entsprechend Ausformulieren. Eigentlich könnte ich dir jetzt alles erklären, und du editierst den Beitrag dann fertig... ;-) "

Wäre toll und meinerseits gerne machbar
smile.gif
- Wenn ich meinen Columbus zum Laufen kriege helfe ich gerne beim für Nichtprogrammierer verständlichen Ausformulieren des Beitrags.

"Du bist kein Programmierer? Du musst mir halt auch noch sagen, auf welchem Level du dich bewegst, da ich halt immer denke etwas ist einfach, wenn ich weiss wies geht."

Ich bin Journalist, kenne Grundlagen in HTML und kann Seiten mit NETOBJECTS FUSION erstellen (und in Maßen mit eigenen HTML-Kenntnissen verändern). Zum Editieren von Veränderungen nehme ich auch schonmal DREAMWEAVER MX.



 
Ok, i see. Dummerweise sind schon minimale programmiererische Kenntnisse nötig.

QUOTE In welchen Programmcode denn einbauen und was dann damit tun? Ich habe doch nur die XML-Dateien und die dtd.

Du hast dein HTML File, dieses ist gemeint. Dein Design wieauchimmer. Dann speicherst du die Testfunktion in dieses Ab. Die eigentliche xml2php Funktion speicherst du ebenfalls in dein HTML File. Zum kopieren drück den Edit Button des FAQ Artikels.

Die xml2php Funktion produziert lediglich einen Array, den du selber verarbeiten musst. Deshalb existiert die Testfunktion, sie gibt den ganzen Array einfach im Html aus. Dazu muss aber ein Php Pharser installiert sein (fast überall). Du musst eigentlich nur noch datei.xml in whatever.xml umändern, damit dir die Testfunktion zeigt, was vorhanden ist.

Z.B.
<xml><Hotel>
<name>asdf</name>
<location>rio, br</location>
</Hotel>
<Hotel>
<name>asdfd</name>
<location>kos</location>
</Hotel>
</xml>

wird von der Testfunktion als

Hotel: Array
0: Array
name: asdf
location: rio, br
1: Array
name: asdfd
location: kos

angezeigt.
D.h. für dich nach der Zeile $arr = xml2array($xmlstring);
-$arr ist ein Array mit den Werten
-$arr['Hotel'] = array ();
-$arr['Hotel'][0]['name'] ist asfd
-$arr['Hotel'][1]['location'] ist kos

Dann musst du die Sachen so wie du es gerne hättest im Html ausgeben.

Z.b.
CODE <table><tr><td>Hotelname</td><td>Location</td></tr>
<?php
$arr = xml2arr($xmlstring);
while (list($k, $v) = each($arr['Hotel'])) {
echo "<tr><td>{$arr['Hotel'][$k]['name']}</td>"
."<td>{$arr['Hotel'][$k]['location']}</td></tr>";
}
?>
</table>

So viel zur Grundidee.
Evtl wäre es auch von Vorteil eine gesammte XML Datei zu sehen.

PS XSL müsstest du wahrscheinlich nicht zig bauen, sondern eine, warum ich XML parse und in Html ausgebe ist wg. fehlender Kompatibilität. @all, welche Browser unterstützen das mittlerweile?
 
Hi,
vielen Dank, das ist durchaus verständlicher. Nur leider blicke ich offenbar trotzdem noch nicht genug durch. Wenn ich richtig verstanden habe, wandeln die Testfunktion und die "Funktion um XML in PHP Array umzuwandeln" jeweils (namentlich passende) XML-Dateien in irgendwelche "Bereiche" (= Arrays") um, wenn ich sie als HTML-Daten (oder Teile davon) abspeichere, in den Ordner der betreffenden HTML-Datei kopiere und dann anklicke. Das funktioniert aber leider bei mir nicht. Da wandelt sich nichts um, sondern beim Anklicken der eigens kreierten HTML-Datei erscheint nur ein Textzeichensalat im Browserfenster. Und selbst wenn das nicht der Fall wäre: Was täte ich dann mit den "Arrays"?
unsure.gif


Vielleicht bin ich einfach doch zu sehr Laie. Oder ich stelle mir etwas Falsches vor. Aber was kann ich tun? Gibt es jemanden, der den Kram mit vergleichsweise geringem Aufwand für mich umwandeln könnte oder ginge das dann gleich in die Hunderte Euro?
 
Das ganze geht von PHP aus. Es ginge soweit ohne PHP Kenntnisse, als dass du es auf einen Server mit PHP hochlädst, und genau machst wie beschrieben. Anklicken bei dir auf dem Desktop parsed kein PHP.

Wenn du PHP nicht kennst und sonst immer statisch arbeitest, ist XSL sicher die bessere Lösung.

Du findest aber sicher jemanden im Board, der dir sein PHP Wissen, etc für einen guten Preis zur verfügung stellen kann. Wenn du genau definierst was du haben willst, ist es mit dem Wissen keine grosse Übung.
 
Zurück
Oben