Portal > Foren > PHP > PHP-Programmierung > XML, PHP5 und Schnittstelle
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 09.05.2007, 19:07 Nach oben    #1
Benutzer
 
Registriert seit: 25.02.2006
Beiträge: 54
Standard XML, PHP5 und Schnittstelle

Hi @all,

ich wage mich (bzw. muss mich wagen) an das Thema XML. Da das für mich ein neues Gebiet ist und einiges rumforschen mich noch nicht all zu weit gebracht hat, wollte ich mal nachfragen, ob hier welche Erfahrung damit haben und mir vielleicht ein paar Tipps geben können?!

Ich muss mit einer XML-Schnittstelle zusammen arbeiten. D.h. Aktionen senden und empfangen, weiterverarbeiten (if, else etc.) und in die DB schreiben etc.

Was empfehlt ihr für eine Methode zu verwenden? simpleXML, Dom, ...

Zur Verfügung steht u.a. php5.

Würde mich über ein paar Tipps freuen!

Grüße
julien

p.s.: Mir wurde noch empfohlen, die XML-Dateien etc. auf Shell Ebene durchzuführen, aber dann müsste ich ja auch eine Verbindung mit php erstellen...

Geändert von julien (09.05.2007 um 19:20 Uhr) Grund: p.s. hinzugefügt
julien ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.05.2007, 23:43 Nach oben    #2
Neuer Benutzer
 
Benutzerbild von N!cKY
 
Registriert seit: 03.03.2006
Ort: Msobach
Beiträge: 14
Standard

wenn ich mit xml arbeite benutze ich meistens DOM, da es so einfach ist, wenn man schon javascript beherrscht, nachteil ist, das aus jedem XML knoten ein php objekt erzeugt wird ==> langsamer.

hier werden die Erweiterungen DOM, SAX und SimpleXML angesprochen.
__________________
Mein Blog: nicky.nubbel.info
N!cKY ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.05.2007, 01:17 Nach oben    #3
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 238
Standard

Zwischenfrage:
XML ist doch selbstdefiniert wenn man dazu die dtd also die Beschreibung mitliefert !? Könnt evtl. anderes Tehma werde -> Links zu xml
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.05.2007, 14:24 Nach oben    #4
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 853
Standard

Zitat:
Zitat von julien Beitrag anzeigen
Was empfehlt ihr für eine Methode zu verwenden? simpleXML, Dom, ...
Das kommt ganz darauf an, was du genau umsetzen möchtest.

Zitat:
p.s.: Mir wurde noch empfohlen, die XML-Dateien etc. auf Shell Ebene durchzuführen, aber dann müsste ich ja auch eine Verbindung mit php erstellen...
"XML-Dateien durchführen"? XML-Bäume sind lediglich Daten-Container. Was willst du da durchführen?

Basti
Basti ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.05.2007, 15:03 Nach oben    #5
Benutzer
 
Registriert seit: 25.02.2006
Beiträge: 54
Standard

Zitat:
Zitat von Basti Beitrag anzeigen
"XML-Dateien durchführen"? XML-Bäume sind lediglich Daten-Container. Was willst du da durchführen?
Das wurde mir nur so gesagt, ich weiß selber nicht so genau, was hiermit gemeint ist...

Aber ich habe nun eigentlich gefunden, was ich gesucht habe und zwar die Umwandlung der XML Struktur in ein Array.

PHP-Code:
function fetch_xml($xml){

    if(
is_file($xml)){
        
$xml_data file_get_contents($xml);
    }
    else{
        
$xml_data $xml;
    }
    
$parser xml_parser_create();
    
xml_parse_into_struct($parser$xml_data, &$assoc_arr, &$idx_arr);
    
xml_parser_set_option($parserXML_OPTION_CASE_FOLDING0);
    
xml_parser_set_option($parserXML_OPTION_SKIP_WHITE1);
    
$root_tag $assoc_arr[0]['tag'];
    
$base_tag strtolower($assoc_arr[1]['tag']);
    
$i 0;
    foreach(
$assoc_arr as $key => $element){
        if(
$element['tag'] != $root_tag){
            if(!
preg_match('/^\s+$/'$element['value'])){
                
$tag strtolower($element['tag']);
                
$items[$i][$tag] = $element['value'];
                if(
$tag == $base_tag){
                    
$i++;
                }
            }
            elseif(isset(
$element['attributes'])){
                
$items[$i]['id'] = $element['attributes']['ID'];
            }
        }
    }

    return 
$items;
}

$items fetch_xml('../datei.xml');

echo 
'<pre>';
print_r($items);
echo 
'</pre>'
Das funktioniert auch ganz gut, bis auf eine Kleinigkeit:

Die XML-Antwort (bzw. hier Datei) beinhaltet auch noch
Code:
<extra_message>
<![CDATA[
<values>
  <status>active</status>
  <created>2006-12-10 18:12:14</created>
</values>
  ]]>
</extra_message>
die Ausgabe ist dann leider:

Code:
[extra_message] => 
active
2006-12-10 18:12:14
Quelltext:
Code:
<status>active</status>
<created>2006-12-10 18:12:14</created>

?? Wie kann ich denn jetzt noch die Daten unter "<![CDATA[" bzw. "extra_message" in ein array schreiben lassen?

Grüße
julien
julien ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.05.2007, 15:50 Nach oben    #6
Johannes Müller
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 551
Standard

Zitat:
Zitat von julien Beitrag anzeigen
?? Wie kann ich denn jetzt noch die Daten unter "<![CDATA[" bzw. "extra_message" in ein array schreiben lassen?
indem du das wieder durch deinen xml parser jagst...
php Code:
  1. $items&#91;$i][$tag] = fetch_xml($element['value']);
lol, was is denn jetzt mit GeSHi kaputt...
Code:
$items[$i][$tag] = fetch_xml($element['value']);
__________________
Weißt Bescheid - Scheiß wie weit

Geändert von $traight-$hoota (12.05.2007 um 15:53 Uhr)
$traight-$hoota ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.05.2007, 17:13 Nach oben    #7
Benutzer
 
Registriert seit: 25.02.2006
Beiträge: 54
Standard

hmm, leider nicht...

Dann hab ich zwar die Attribute <status> etc. im Array aber die Werte sind verschwunden...
julien ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.05.2007, 18:31 Nach oben    #8
Johannes Müller
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 551
Standard

hm, dann musst du, vermute ich mal, den parser so anpassen, dass als subknoten keine CDATA sondern PCDATA-elemente gesucht werden.
__________________
Weißt Bescheid - Scheiß wie weit
$traight-$hoota ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.05.2007, 11:44 Nach oben    #9
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 853
Standard

Ich verstehe auch nicht, was du da willst. Die Ausgabe ist doch völlig korrekt.

Wenn du als Inhalte eines Knotens nochmal XML-Zeichenketten erwartest, dann jag die einfach nochmal durch den Parser. Bös gepfuscht könntest du auch einfach die CDATA-Tags mit str_replace() rauslöschen.

Basti
Basti ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
DB Backup als XML im ZIP Archiv ex³ PHP-Programmierung 4 13.09.2007 14:17
Bug im PEAR XML Parser? ex³ PEAR, PECL und Frameworks 11 15.02.2007 14:51
XML aus Datenbank lesen, verarbeiten Robinson HTML, XML und CSS 5 27.12.2005 20:30
xml parsing nove HTML, XML und CSS 10 16.07.2005 07:43
XML Schema GUI Engine (JAXFront) spor Nachrichten 2 05.08.2004 17:27


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:46 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45