zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden XML in Array

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 27.05.2007, 18:45
Content-type: x/user
neuer user
Thread-Ersteller
 
Registriert seit: 26.05.2006
Beiträge: 51
X-User befindet sich auf einem aufstrebenden Ast
Standard XML in Array

Ich suche eine einfache, gute Funktion, mit der man mit PHP 5 eine XML Datei oder einen XML String in ein Array einlesen kann. Habe schon viel gesucht, aber nichts vernünftiges gefunden. Die Funktion sollte auf jeden Fall auch Attribute erkennen. Arrays sind einfach viel besser zu benutzen als DOMDocument- oder SimpleXML-Objekte. Eine Funktion, die ein SimpleXML Objekt in ein Array umwandelt wär ganz nett.

Geändert von X-User (27.05.2007 um 19:29 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 27.05.2007, 21:54
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 13.07.2006
Beiträge: 414
Maxefix ist ein sehr geschätzer MenschMaxefix ist ein sehr geschätzer MenschMaxefix ist ein sehr geschätzer Mensch
Standard

Ich hab mal eine PHP-Klasse gefunden mit der man recht einfach mit XML-Dateien umgehen konnte, ich weiß leider nicht mehr so genau wie die hieß. Naja, kannst ja mal Googlen, da gibts bestimmt viel. Vorallem da es SimpleXML erst ab PHP5 gibt und noch viele PHP4 nutzen.

MFG Max
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 27.05.2007, 21:54
Benutzerbild von netspy
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 13.08.2004
Ort: Leipzig
Beiträge: 1.953
netspy sorgt für eine eindrucksvolle Atmosphärenetspy sorgt für eine eindrucksvolle Atmosphäre
Standard

Eine Suche nach php xml array bei Google liefert doch massenhaft gute Ergebnisse. Ist da nichts für dich dabei?

Mario
__________________
AppDev Blog · AppDev Forum
Mit Zitat antworten
  #4 (permalink)  
Alt 29.05.2007, 14:49
Content-type: x/user
neuer user
Thread-Ersteller
 
Registriert seit: 26.05.2006
Beiträge: 51
X-User befindet sich auf einem aufstrebenden Ast
Standard

Nein. Ich habe da nichts praktisches gefunden. Es soll ohne libxml und PEAR oder irgendeiner besonderen API auskommen und auch Attribute berücksichtigen. Die Scripte, die irgendwelche Suchmuster verwenden, traue ich mich nicht zu benutzen, da diese wahrscheinlich nicht ganz XML-konform sind. Ich habe jetzt schon einige mit einem Suchmuster probiert, aber die können halt kein echtes XML.

Kann mir mal jemand sagen, wie man mit SimpleXML an einen String kommt?
edit: Man schreibt einfach (string) davor und alles ist wunderbar.
Beispiel: (string)$a=$xml->tag gibt mir tag als string aus.

Ich nehme jetzt doch SimpleXML statt einem Array.

Geändert von X-User (29.05.2007 um 15:34 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 29.05.2007, 15:35
Benutzerbild von netspy
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 13.08.2004
Ort: Leipzig
Beiträge: 1.953
netspy sorgt für eine eindrucksvolle Atmosphärenetspy sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von X-User Beitrag anzeigen
Nein. Ich habe da nichts praktisches gefunden. Es soll ohne libxml und PEAR oder irgendeiner besonderen API auskommen und auch Attribute berücksichtigen. Die Scripte, die irgendwelche Suchmuster verwenden, traue ich mich nicht zu benutzen, da diese wahrscheinlich nicht ganz XML-konform sind. Ich habe jetzt schon einige mit einem Suchmuster probiert, aber die können halt kein echtes XML.
Merkwürdig, gleich das erste Suchergebnis zeigt auf einen ähnlichen Foreneintrag wie deinen und dort wird auf diese Funktion verlinkt. Was gefällt dir daran nicht?

Zitat:
Zitat von X-User Beitrag anzeigen
Kann mir mal jemand sagen, wie man mit SimpleXML an einen String kommt?
Was für einen String? Ein Textwert, ein Attribut, ...?

Mario
__________________
AppDev Blog · AppDev Forum
Mit Zitat antworten
  #6 (permalink)  
Alt 01.11.2007, 13:58
Neuer Benutzer
neuer user
 
Registriert seit: 01.11.2007
Beiträge: 2
Kirsch befindet sich auf einem aufstrebenden Ast
Standard XML2Array mit SimpleXML

Es ist doch ganz einfach aus einem XML-Dokument ein Array zu machen
PHP-Code:
#XML liegt als String vor
$xmlArray = (Array) new SimpleXMLElement($xmlString);

#oder aus einer Datei laden
$xmlArray = (Array) simplexml_load_file($pfad); 
SimpleXML ist ab PHP 5 verfügbar
Mit Zitat antworten
  #7 (permalink)  
Alt 01.11.2007, 20:04
Neuer Benutzer
neuer user
 
Registriert seit: 01.11.2007
Beiträge: 2
Kirsch befindet sich auf einem aufstrebenden Ast
Standard

Ich muss mich korrigieren, es wird nur die oberste ebene in ein Array umgewandelt, dass heißt das Array enthält weitere XML-Objekte. Ich habe eine kleine Funktion geschrieben, die das Objekt rekursiv durchläuft:
PHP-Code:
function xmlObject2Array($knoten){
    
$xmlArray = array();
    if(
is_object($knoten)){
        
settype($knoten,'array') ;
    }
    foreach (
$knoten as $key=>$value){
        if(
is_array($value)||is_object($value)){
            
$xmlArray[$key] = xmlObject2Array($value);
        }else{
            
$xmlArray[$key] = $value;
        }
    }
    return 
$xmlArray;
}

#XML liegt als String vor 
$xmlObject simplexml_load_string($xmlString); 

#oder aus einer Datei laden 
$xmlObject simplexml_load_file($pfad); 

$xmlArray xmlObject2Array($xmlObject); 
Mit Zitat antworten
  #8 (permalink)  
Alt 08.03.2010, 17:19
Neuer Benutzer
neuer user
 
Registriert seit: 08.03.2010
Beiträge: 1
chris2505 befindet sich auf einem aufstrebenden Ast
Standard Laufzeitproblem ab ca. 24000 Datensätzen

Hallo,
ich bin beim googlen auf das vorherige Script gestoßen.
Es funktioniert auch sehr gut, aber ich denke, es gibt ein Laufzeitproblem ab ca. 24.000 Datensätzen.
Ich kann leider auf dem Server keinen eigenen Timeout setzen, so dass ich mit der Einstellung von 30 leben muss.
Welche Möglichkeiten der Beschleunigung gibt es hier noch? Ich habe teilweise bis zu 100.000 Datensätze, welche ich in das Array einlesen möchte.
Danke für Eure Rückmeldungen.
Mit Zitat antworten
  #9 (permalink)  
Alt 08.03.2010, 17:38
Benutzerbild von fox
fox fox ist offline
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 11.09.2006
Beiträge: 1.008
fox sorgt für eine eindrucksvolle Atmosphärefox sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von chris2505 Beitrag anzeigen
Welche Möglichkeiten der Beschleunigung gibt es hier noch? Ich habe teilweise bis zu 100.000 Datensätze, welche ich in das Array einlesen möchte.
Danke für Eure Rückmeldungen.
Da wirst du wohl mit jedem Skript an die Grenzen stoßen. Unterteile das ganze in mehrere Dateien. Wenn du das nicht von Hand machen kannst dann mach das mit PHP. Reguläre Ausdrücke könnten das in 30 Sekunden schaffen
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 08.03.2010, 17:39
Benutzerbild von David
auch, ja!
XHTMLforum-Kenner
 
Registriert seit: 08.11.2007
Beiträge: 2.626
David ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer AnblickDavid ist ein wunderbarer Anblick
Standard

Ich bin kein PHP-Profi, sehe da keine großen optimierungsmöglichkeiten in der Funktion. Gestatte mir die Frage, was du mit 100.000 Datensätzen in einem Array vor hast? Um große Datenmengen zu verarbeiten ist PHP vieleicht sowieso nicht die richtige Umgebung?
__________________
github | http://dnaber.de
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ausgabe geschieht nur einmal Benutzername Serveradministration und serverseitige Scripte 0 12.05.2011 15:59
Navigation aus Array erstellen uspri Serveradministration und serverseitige Scripte 12 16.11.2010 13:32
PHP: zweidim. Array mit eindimensionaler Struktur in Eindim. Array umwandeln? braindead Serveradministration und serverseitige Scripte 4 08.07.2008 13:31
Funktion gibt Array nicht zurück Schneemann Serveradministration und serverseitige Scripte 8 05.05.2008 01:14
[PHP] Funktion zum Optimieren von CSS Floele Serveradministration und serverseitige Scripte 2 13.08.2005 10:31


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:23 Uhr.