heinetz: XML-Parser

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&#252;r uns ist v&#246;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&#252;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&#246;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&#252;r uns ist v&#246;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

  1. @@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

    --
    Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
    1. 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

      1. @@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

        --
        Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)
  2. echo $begrüßung;

    <p begin="00:03" end="00:06">F&#252;r uns ist v&#246;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";

    1. 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&#252;r uns von der Daimler BKK ist v&#246;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&#252;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&#246;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

      1. gefunden! es scheint doch zu gehen.

        1. 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