mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 18.04.2024 22:07 Benutzername: Passwort: Auto-Login

Thema: [PHP]Problem bei Parsen vom XML-Daten vom 21.11.2005


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [PHP]Problem bei Parsen vom XML-Daten
Seite: 1, 2  Weiter
Autor Nachricht
WurstOderWas
Threadersteller

Dabei seit: 26.03.2003
Ort: -
Alter: 43
Geschlecht: Männlich
Verfasst Mo 21.11.2005 12:53
Titel

[PHP]Problem bei Parsen vom XML-Daten

Antworten mit Zitat Zum Seitenanfang

Hi Leute,

in einer XML-Datei stehen HTML-Elemente. Genauer gesagt ein select-tag mit mehreren und vor allem einer variierenden anzahl an option-tags.

das ganze wird in etwa so geliefert und muss so verarbeitet werden:



Code:
<result ok="true">      
   <SET>route</SET>
   <CID>****</CID>
   <todo>showRouteList</todo>
   <state>routeInput</state>
   <DEVICECHECK>0</DEVICECHECK>      
   <ALTERNATIVES>50</ALTERNATIVES>      
   <STYLE>xml</STYLE>      
   <LANG>DEU</LANG>                                             
   
   <query_result_0 results="6">               
      <select name="JOINED_0">
         <option selected value="0|D|25746|Heide|||||1010772|7199214|">D-25746 Heide    </option>
         <option value="0|D|25746|Heide|Süderholm||||1017271|7199845|">D-25746 Heide Süderholm   </option>
         <option value="0|D|25746|Heide|Bennewohld||||1022394|7200770|">D-25746 Heide Bennewohld   </option>
         <option value="0|D|25746|Heide|Dellweg; Gem Heide||||1006371|7200820|">D-25746 Heide Dellweg; Gem Heide   </option>
         <option value="0|D|25746|Heide|Duvenheide||||1018330|7197726|">D-25746 Heide Duvenheide   </option>
         <option value="0|D|25746|Heide|Hochfeld||||1008117|7200153|">D-25746 Heide Hochfeld   </option>
      </select>            
   </query_result_0>
</result>



Ich möchte nun also gerne das Element query_result_0 auslesen.

Das habe ich erfolglos mit folgendem Script probiert:


Code:


<?
function elem_start($xml_parser, $name, $attribute) {
    if($name == "query_result_0"){
        xml_set_character_data_handler($xml_parser, "cdata_ausgeben");
    }else{
        xml_set_character_data_handler($xml_parser, "cdata_nichtausgeben");
    }
}
function elem_ende($xml, $name) {
}

function cdata_ausgeben($xml, $daten){
    echo htmlspecialchars($daten);
}

function cdata_nichtausgeben($xml, $daten){
}

$xml_parser = xml_parser_create();
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, false);
xml_set_element_handler($xml_parser, "elem_start", "elem_ende");
$daten = file_get_contents($file);
xml_parse($xml_parser, $daten, true);
xml_parser_free($xml_parser);
?>




Wenn ich statt "query_result_0" oben in der if-schleife beispielsweise "todo" eingebe, dann erhalte ich das richtige ergebnis.
Was mache ich falsch. Bin für jeden Tip dankbar.

Danke!


Zuletzt bearbeitet von WurstOderWas am Mo 21.11.2005 14:16, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Account gelöscht


Ort: -
Alter: -
Verfasst Mo 21.11.2005 14:53
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
if-schleife

*grusel*


Zum Problem:

Ich würde für den gezielten Zugriff auf XML-Daten auch eher auf die DOM-Funktionalität von PHP - bevorzugt 5 - zurückgreifen:

http://de3.php.net/manual/de/ref.dom.php

Willst du die SAX-Erweiterung tatsächlich nutzen, würde ich dir empfehlen, entweder mit xml_parse_into_struct() den ganzen Baum in ein Array zu lesen und dieses auseinanderzunehmen, oder alternativ die Elementhandler einmal zu testen, d.h. einfach mal in einem ersten Schritt den ganzen Baum ausgeben lassen, und im Folgenden dann speziell Funktionen für deine Problemlösung zu entwickeln.

Fang quasi klein an und beginne zu Verstehen, was die Erweiterung mit deinen XML-Daten macht, das Prinzip dahinter muss dir einleuchten, bevor du beginnst damit zu arbeiten.


Zuletzt bearbeitet von am Mo 21.11.2005 14:55, insgesamt 1-mal bearbeitet
 
Anzeige
Anzeige
kaputt

Dabei seit: 08.05.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 21.11.2005 15:19
Titel

Antworten mit Zitat Zum Seitenanfang

XSchinkenX hat geschrieben:
Zitat:
if-schleife

*grusel*

*ha ha*
  View user's profile Private Nachricht senden
WurstOderWas
Threadersteller

Dabei seit: 26.03.2003
Ort: -
Alter: 43
Geschlecht: Männlich
Verfasst Mo 21.11.2005 15:34
Titel

Antworten mit Zitat Zum Seitenanfang

XSchinkenX hat geschrieben:
Zitat:
if-schleife

*grusel*


Zum Problem:

Ich würde für den gezielten Zugriff auf XML-Daten auch eher auf die DOM-Funktionalität von PHP - bevorzugt 5 - zurückgreifen:

http://de3.php.net/manual/de/ref.dom.php

Willst du die SAX-Erweiterung tatsächlich nutzen, würde ich dir empfehlen, entweder mit xml_parse_into_struct() den ganzen Baum in ein Array zu lesen und dieses auseinanderzunehmen, oder alternativ die Elementhandler einmal zu testen, d.h. einfach mal in einem ersten Schritt den ganzen Baum ausgeben lassen, und im Folgenden dann speziell Funktionen für deine Problemlösung zu entwickeln.

Fang quasi klein an und beginne zu Verstehen, was die Erweiterung mit deinen XML-Daten macht, das Prinzip dahinter muss dir einleuchten, bevor du beginnst damit zu arbeiten.


Also, ich bin nicht auf die SAX-Erweiterung angewiesen. Will nur dieses schnuckelige, kleine Select-Feldchen haben. Wie is mir ziemlich schnuppe. *zwinker* Also... wie komm ich an mein Select-Feld?
  View user's profile Private Nachricht senden
Account gelöscht


Ort: -
Alter: -
Verfasst Mo 21.11.2005 19:53
Titel

Antworten mit Zitat Zum Seitenanfang

Mit den DOM-Funktionen *zwinker*
 
WurstOderWas
Threadersteller

Dabei seit: 26.03.2003
Ort: -
Alter: 43
Geschlecht: Männlich
Verfasst Di 22.11.2005 12:19
Titel

Antworten mit Zitat Zum Seitenanfang

XSchinkenX hat geschrieben:
Mit den DOM-Funktionen *zwinker*


hmm, diese funktionen scheinen nicht verfügbar zu sein *Schnief* (call to undefined function)
noch ne idee?
  View user's profile Private Nachricht senden
dastef

Dabei seit: 03.11.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Di 22.11.2005 12:52
Titel

Antworten mit Zitat Zum Seitenanfang

die dom-extension installieren ..
  View user's profile Private Nachricht senden
WurstOderWas
Threadersteller

Dabei seit: 26.03.2003
Ort: -
Alter: 43
Geschlecht: Männlich
Verfasst Di 22.11.2005 18:26
Titel

Antworten mit Zitat Zum Seitenanfang

so... extension ist installiert.
wie konkret kann ich nun aus dem groooossen schnipsel(oben)
nur diesen teil hier auslesen:

Code:
<query_result_0 results="6">               
      <select name="JOINED_0">
         <option selected value="0|D|25746|Heide|||||1010772|7199214|">D-25746 Heide    </option>
         <option value="0|D|25746|Heide|Süderholm||||1017271|7199845|">D-25746 Heide Süderholm   </option>
         <option value="0|D|25746|Heide|Bennewohld||||1022394|7200770|">D-25746 Heide Bennewohld   </option>
         <option value="0|D|25746|Heide|Dellweg; Gem Heide||||1006371|7200820|">D-25746 Heide Dellweg; Gem Heide   </option>
         <option value="0|D|25746|Heide|Duvenheide||||1018330|7197726|">D-25746 Heide Duvenheide   </option>
         <option value="0|D|25746|Heide|Hochfeld||||1008117|7200153|">D-25746 Heide Hochfeld   </option>
      </select>             
   </query_result_0>


Bitte, bitte mal für doofe. Blödes XML *zwinker*
  View user's profile Private Nachricht senden
 
Ähnliche Themen XML mit Javascript parsen
Parsen von datei php
xml laden und parsen in *.as
Hilfe beim Parsen einer XML
XML in PHP einlesen (parsen) und Inhalte ausgeben.
PHP -> XML Parsen - Pro Zeile jeweils 3 Ausgaben!
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.