XML-Parser
heinetz
- php
Hallo Forum,
ich will versuchen, für das Editieren eines XML ein
HTML-Fornend zu bauen. Das XML hat eine fixe Struktur
und sieht so aus:
<tt xmlns="http://www.w3.org/2006/10/ttaf1">
<body>
<div xml:id="captions">
<p begin="00:03" end="00:06">Für uns ist völlig klar:</p>
<p begin="00:06" end="00:07">Wer fitt und aktiv ist,</p>
<p begin="00:07" end="00:10">der lebt gesünder! </p>
<p begin="00:09" end="00:11">Deshalb fordern wir Ihre Fittness,</p>
<p begin="00:14" end="00:18">wo immer wir können.</p>
</div>
</body>
</tt>
Mein Webfrontend ist ein Formular das pro <p>-Tag drei Eingabefelder
umfasst:
<input id="begin" value="00:03">
<input id="end" value="00:06">
<input id="caption" value="Für uns ist völlig klar:">
Mein Ansatz:
------------
Ich stelle mir vor, das XML mit php auszulesen und entsprechendes HTML
auszugeben. Um die Änderungen in's XML zurückzuschreiben, will ich mich
mal in AJAX versuchen und per PHP die Daten im XML ändern.
Frage:
------
Ich habe bisher noch nicht mit PHP in Verindung mit XML gearbeitet und
es scheint einige verschiedene mehr oder weinige mächtige PHP-Parser zu
geben.
Kann mir jemand sagen, was für meine (m.E. recht einfachen) Zwecke
der richtige Ansatz ist ? Ich möchte nichts extra auf dem Webserver
installieren.
danke für Tipps und
beste gruesse,
heinetz
@@heinetz:
Kann mir jemand sagen, was für meine (m.E. recht einfachen) Zwecke
der richtige Ansatz ist ?
http://de.selfhtml.org/xml/darstellung/index.htm@title=XSLT [XSLT]
Live long and prosper,
Gunnar
wenn ich das richtig verstehe, handelt es sich hierbei um eine
Möglichkeit zur Darstellung eines XML-Files. Die Daten aus dem
XML sollen innerhalb einer XHTML-Site dargestellt werden.
Ich kann daraus nicht erkennen, dass man den Weg über
auslesen, per HTML-Input editierbar machen und per PHP
zurückschreiben umgehen kann.
Vielleicht bin ich blind.
gruesse,
heinetz
@@heinetz:
wenn ich das richtig verstehe, handelt es sich hierbei um eine
Möglichkeit zur Darstellung eines XML-Files.
Es handelt sich um eine Möglichkeit, XML in irgendetwas anderes umzuwandeln. Das kann auch (X)HTML sein, und es muss nicht notwendigerweise ein vollständiges (X)HTML-Dokument sein. Wurzelelement der Ausgabe könnte dein 'form'-Element sein. Oder 'fieldset'.
Die Daten aus dem
XML sollen innerhalb einer XHTML-Site dargestellt werden.
Eben. Das aus dem XML generierte (X)HTML bindest du in deine Seite ein, bspw. mit PHP.
Live long and prosper,
Gunnar
echo $begrüßung;
<p begin="00:03" end="00:06">Für uns ist völlig klar:</p>
Warum verunstaltest du denn die Umlaute so? Versuch doch mal durchgängig UTF-8 in deiner Verarbeitung zu verwenden, dann ist das nicht mehr nötig. (Es geht sicher auch mit ISO-8859-1, wenn man sich darauf einschränken will, aber XML und verarbeitende Komponenten mögen UTF-8 lieber.)
Kann mir jemand sagen, was für meine (m.E. recht einfachen) Zwecke der richtige Ansatz ist? Ich möchte nichts extra auf dem Webserver installieren.
Für die XML-Manipulation gibt es nennenswert SimpleXML (PHP5) und DOM-Implementationen (je nach PHP-Version). Beachte jedoch, dass du Namespaces verwendest und die eine besondere Behandlung benötigen.
echo "$verabschiedung $name";
ok, ich habe SimpleXML mal ausprobiert:
<?xml version="1.0" encoding="UTF-8" ?>
<daten>
<bericht>
<Jahr>2007</Jahr>
<Monat>05</Monat>
<Tag>09</Tag>
<Zeit>12:07</Zeit>
<Seitentitel>XML mit PHP nutzen</Seitentitel>
<Keywords>XML,PHP,SimpleXML</Keywords>
<Autor>Hilko Holweg</Autor>
<Anrisstext>Daten als XML-Datei zu speichern</Anrisstext>
<Titel>XML mit PHP nutzen</Titel>
<Content>Zum Anfang erstmal, XML ist eine</Content>
</bericht>
</daten>
$xml = simplexml_load_file("../_content/media/xml/test.xml");
echo $xml->bericht[0]->Seitentitel[0];
exit;
und das funktioniert auch. Allerdings
mit meinem xml:
<tt xmlns="http://www.w3.org/2006/10/ttaf1">
<body>
<div xml:id="captions">
<p begin="00:03" end="00:06">Für uns von der Daimler BKK ist völlig klar:</p>
<p begin="00:06" end="00:07">Wer fitt und aktiv ist,</p>
<p begin="00:07" end="00:10">der lebt gesünder! </p>
<p begin="00:09" end="00:11">Deshalb fordern wir Ihre Fittness,</p>
<p begin="00:14" end="00:18">wo immer wir können.</p>
</div>
</body>
</tt>
... geht's leider nicht ;(
In meinem XML werden die Untertitel (Closed Captions) für den
JW FLV Player, einen Flash-Video-Player
gespiechert. Das Format nennt sich Timed Text.
Kann es sein, dass das File nicht über SimpleXML zu bearbeiten
ist ?
danke und
beste gruesse,
heinetz
gefunden! es scheint doch zu gehen.
Hi,
gefunden! es scheint doch zu gehen.
was gefunden? Es wäre schön der Nachwelt auch an deinem Erfolg teilhaben zu lassen, warum es jetzt doch geht. Denn davon lebt so ein Forum schliesslich, von Fragen und Lösungen.
Timo