XML file über PHP in eine Formular auslesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • XML file über PHP in eine Formular auslesen

    Hallo lieber Internetgemeinde,

    ich brauche hilfe.. und zwar soll ich aus einer xml file über php die childes auslesen und dann über das formular ändern und in die xml datein den geänderten file updaten.

    xml file
    <news>
    <item>
    <cat>1</cat>
    <title>Fleischskandal geht in die n&#228;chste Runde</title>
    <threadid>94</threadid>
    </item>
    <item>
    <cat>2</cat>
    <title>Neue GEZ-Gebühren für internetf&#228;hige Computer</title>
    <threadid>89</threadid>

    </item>
    <item>
    <cat>3</cat>
    <title>Brasilianer Ronaldinho Fußballer des Jahres</title>
    <threadid>188</threadid>

    </item>
    <item>
    <cat>4</cat>
    <title>Richtige Autoreifenauswahl vor Wintereintritt</title>
    <threadid>156</threadid>

    </item>
    </news>

    so das ist der xml file und diese daten soll in dein html formular über php eingelesen werden und der ausgewählte satz geändert und dann in das xml file geändert werden..

    ich hoffe da könnt ih rmir helfen..

    danke..

  • #2
    Wie sehen denn deine Ansätze aus? Sag nicht du hättest keine!

    Kommentar


    • #3
      ähm naja bin am rum dokoren..

      Ehrlich gesagt.. ja ich habe da noch keine..

      Nein hab da ein scsript angefangen, was immerhin mir schon mal den xml inhalt in ein hatmel doku einlest.

      [code started]
      <?php
      $file = "featuredthreads_test.xml";


      function trustedFile($file)
      {
      // only trust local files owned by ourselves
      if (!eregi("^([a-z]+)://", $file)
      && fileowner($file) == getmyuid()) {
      return true;
      }
      return false;
      }

      function startElement($parser, $name, $attribs)
      {
      echo "&lt;<font color=\"#0000cc\">$name</font>";
      if (count($attribs)) {
      foreach ($attribs as $k => $v) {
      echo " <font color=\"#FFFFFF\">$k</font>=\"<font
      color=\"#FF0000\">$v</font>\"";
      }
      }
      echo "&gt;";
      }

      function endElement($parser, $name)
      {
      echo '<font color="#FFFFFF">'.$name.'</font>';
      }

      function characterData($parser, $data)
      {

      echo '<font size="1" color="#000000"><a href="#"><b>'.$data.'</b></a></font>';*******
      }

      function PIHandler($parser, $target, $data)
      {
      switch (strtolower($target)) {
      case "php":
      global $parser_file;
      // If the parsed document is "trusted", we say it is safe
      // to execute PHP code inside it. If not, display the code
      // instead.
      if (trustedFile($parser_file[$parser])) {
      eval($data);
      } else {
      printf("Untrusted PHP code: <i>%s</i>",
      htmlspecialchars($data));
      }
      break;
      }
      }

      function defaultHandler($parser, $data)
      {
      if (substr($data, 0, 1) == "&" && substr($data, -1, 1) == ";") {
      printf('<font color="#000000">%s</font>',
      htmlspecialchars($data));
      } else {
      printf('<font size="-1">%s</font>',
      htmlspecialchars($data));
      }
      }

      function externalEntityRefHandler($parser, $openEntityNames, $base, $systemId,
      $publicId) {
      if ($systemId) {
      if (!list($parser, $fp) = new_xml_parser($systemId)) {
      printf("Could not open entity %s at %s\n", $openEntityNames,
      $systemId);
      return false;
      }
      while ($data = fread($fp, 4096)) {
      if (!xml_parse($parser, $data, feof($fp))) {
      printf("XML error: %s at line %d while parsing entity %s\n",
      xml_error_string(xml_get_error_code($parser)),
      xml_get_current_line_number($parser), $openEntityNames);
      xml_parser_free($parser);
      return false;
      }
      }
      xml_parser_free($parser);
      return true;
      }
      return false;
      }

      function new_xml_parser($file)
      {
      global $parser_file;

      $xml_parser = xml_parser_create();
      xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1);
      xml_set_element_handler($xml_parser, "startElement", "endElement");
      xml_set_character_data_handler($xml_parser, "characterData");
      xml_set_processing_instruction_handler($xml_parser, "PIHandler");
      xml_set_default_handler($xml_parser, "defaultHandler");
      xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler");

      if (!($fp = @fopen($file, "r"))) {
      return false;
      }
      if (!is_array($parser_file)) {
      settype($parser_file, "array");
      }
      $parser_file[$xml_parser] = $file;
      return array($xml_parser, $fp);
      }

      if (!(list($xml_parser, $fp) = new_xml_parser($file))) {
      die("could not open XML input");
      }

      ?>
      [code end]

      1.) das *******
      echo '<font size="1" color="#000000"><a href="#"><b>'.$data.'</b></a></font>' schmeißt mir alles raus, das ich nicht auf die einzelenen children zugreifen kann. Habs mit einem Array probiert.. bekomme immer fehler.

      2.) und nunbrauche ich eine function um den xml-file updated zu können.

      Ich hoffe das hilft
      Zuletzt geändert von fredolin; 14.11.2006, 09:39.

      Kommentar

      Lädt...
      X