Anzeige - [Interessiert an einer Anzeige?]
(?) Tags raten (?) (edit)
 
Reply to this topicStart new topicStart Poll
> Diskussion: Wie parse ich XML mit PHP?
Ayom-Team
Geschrieben am: Di 2.01.2007, 00:56
Report PostQuote Post

AyomRank 1
**

Gruppe: Member (aktiv)
Beiträge: 1
Mitglied seit: 17.11.2004


Diskussion zum Artikel Wie parse ich XML mit PHP? in der Kategorie PHP, Mysql & Apache

"php xml parsen"

Diese Funktion stammt aus der Free Amazon Web Service Funktionen Sammlung www.chipdir.nl/amazon/ und das Copyright liegt bei Jaap van Ganswijk

Beschreibung: Es geht darum eine XML Datei in einen PHP Array zu schreiben, um den im weiteren Scipt zu verwenden.
Es ist aber nötig die Namen der XML Felder zu kennen. Wenn du diese noch nicht kennt, kann man die Testfunktion ausführen (Ungetestete Funktion).
Um den Code zu kopieren benutze die Edit Funktion.

Benutzungsbeispiel:
CODE
$xml = "<xmlfeld>
<unterfeld>Text 1</unterfeld>
<unterfeld>Text 2</unterfled>
</xmlfeld>";

$arr = xml2array($xml);

//Die Arrayfelder:

$arr['xmlfeld']['unterfeld'][0] = "Text 1";
$arr['xmlfeld']['unterfeld'][1] = "Text 2";



Testfunktion
Beschreibung: Benutzt xml2array und gibt den ganzen Array aus. Input: XML-String (dh das xml-file)
CODE

$file = file("datei.xml");
$xmlstring = join("", $file);

$arr = xml2array($xmlstring);

do_printR($arr);

function do_printR($arr) {
while (list($k,$v) = each($arr)) {
if (is_array($arr[$k])) {
echo $k.": Array<br>";
do_printR($arr[$k]);
} else {
echo $k.": ".$v."<br>";
}
}
}

Funktion um XML in PHP Array umzuwandeln
Input: Korrekter XML Code
Output: Array mit allen Werten
Die Funktion xml2array wandelt einen XML String in einen Array um.
CODE

function xml2array($s) {
if ($Atmp1=explode('>',$s,2)
/* && ereg('^<\?(xml .*)\?$',$Atmp1[0],$Atmp2)*/) {
//$A['xml']=$Atmp2[1];
//XML Version, kümmert niemanden
//funktioniert nur bei korrekten XML eingaben
xml2array_sub($A,$Atmp1[1]);
}
return $A;
}
function xml2array_sub(&$A,$s) {
global $error_msg;

for ($c=0;ereg('<([^<>/ ]*)( [^<>]*)?/>(.*)',$s,$Atmp1) or
ereg('<([^<>/ ]*)( [^<>]*)?>(.*)',$s,$Atmp1) and
$Atmp2=explode('</'.$Atmp1[1].'>',$Atmp1[3],2);++$c) {
$E=array();
$tag=$Atmp1[1];
if ($Atmp1[2]) {
$Atmp3=explode(' ',substr($Atmp1[2],1));
foreach ($Atmp3 as $d) {
$Atmp4=explode('=',$d,2);
$Atmp4[1]=ereg_replace('^"(.*)"$','\1',$Atmp4[1]);
$E[$Atmp4[0]]=$Atmp4[1];
}
}
if ($Atmp2) {
if (!xml2array_sub($E,$Atmp2[0])) {
$E=$Atmp2[0];
}
$s=$Atmp2[1]; //rest of the xml-code
$Atmp2=false;
}
else {
$s=$Atmp1[3]; //rest of the xml-code
}
if ($A[$tag]) { //does it already exist?
//not already a numberically indexed array?
if (!is_array($A[$tag]) or !$A[$tag][0]) {
$Atag=$A[$tag]; //remove element again
unset($A[$tag]);
//make old element first element of it's former self
$A[$tag][]=$Atag;
}
if ($E) {
$A[$tag][]=$E; //add new element
}
}
else {
if ($E) {
$A[$tag]=$E;
if ($tag=='$ErrorMsg') $error_msg=$E;
}
}
}
return $c;
}


Diese Funktion stammt aus der Amazon Web Service Sammlung www.chipdir.nl/amazon/ und das Copyright liegt bei Jaap van Ganswijk

Threads:
Thema: xml mit php parsen

-------------------
Dieser Artikel steht unter der Creative Commons Lizenz.
Top
PMEmail Poster
Top
 
 
Sascha Ahlers
#2 Geschrieben am: Di 2.01.2007, 00:56 (+00:00)
Report PostQuote Post

AyomRank 8
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 1699
Mitglied seit: 27.12.2004


Warum benutzt Ihr nur immer solche Funktionen, wenn PHP schon so viele Möglichkeiten bietet XML-Dateien zu Parsen:
Bei solchen Funktionen kann man schnell auch nicht-komforme XML-Dateien Parsen, was nicht der Sinn von XML ist.

http://www.php.net/dom
http://www.php.net/xml
http://www.php.net/xmlreader


--------------------
Joseph Joubert: "Der Verstand kann uns sagen, was wir unterlassen sollen. - Aber das Herz kann uns sagen, was wir tun müssen."

Sicherheit beim Programmieren: Top 10 application vulnerabilities in 2007
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Maik
power-labels AG
#3 Geschrieben am: Di 2.01.2007, 03:12 (+02:15)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 479
Mitglied seit: 16.03.2006




--------------------
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Sascha Ahlers
#4 Geschrieben am: Di 2.01.2007, 04:19 (+01:07)
Report PostQuote Post

AyomRank 8
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 1699
Mitglied seit: 27.12.2004


DOM XML gilt als veraltet: "The DOM extension is the replacement for the DOM XML extension from PHP 4." ~http://de.php.net/manual/de/ref.dom.php


--------------------
Joseph Joubert: "Der Verstand kann uns sagen, was wir unterlassen sollen. - Aber das Herz kann uns sagen, was wir tun müssen."

Sicherheit beim Programmieren: Top 10 application vulnerabilities in 2007
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Maik
power-labels AG
#5 Geschrieben am: Di 2.01.2007, 04:56 (+00:37)
Report PostQuote Post

AyomRank 5
**********

Gruppe: Member (aktiv)
Beiträge: 479
Mitglied seit: 16.03.2006


das heißt doch nicht das es veraltet ist... nur, dass es Neueres gibt...
aber trotzdem wird es noch eine lange Zeit genutzt, PHP5 ist schließlich nichtmal annähernd im Produktiv-Stadium. Wer also Wert auf Sicherheit legt, nutzt weiterhin den Version4-Zweig... und damit die "veraltete" Version der Lib


--------------------
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Sascha Ahlers
#6 Geschrieben am: Di 2.01.2007, 05:07 (+00:10)
Report PostQuote Post

AyomRank 8
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 1699
Mitglied seit: 27.12.2004


QUOTE (Maik @ Di 2.1.2007, 5:56)
[...] PHP5 ist schließlich nichtmal annähernd im Produktiv-Stadium. Wer also Wert auf Sicherheit legt, nutzt weiterhin den Version4-Zweig... [...]

Quelle?


--------------------
Joseph Joubert: "Der Verstand kann uns sagen, was wir unterlassen sollen. - Aber das Herz kann uns sagen, was wir tun müssen."

Sicherheit beim Programmieren: Top 10 application vulnerabilities in 2007
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Sascha Ahlers
#7 Geschrieben am: Do 4.01.2007, 21:27 (+2d 16:20)
Report PostQuote Post

AyomRank 8
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 1699
Mitglied seit: 27.12.2004


Wenn Du keine Quelle hast, dann müssten meine bisherigen Informationen stimmen, dass man die aktuellste PHP (Momentan 5.2.0) verwenden sollte. Dies wird auch von den PHP-Entwickler empfohlen, da PHP 5 vorrangig weiterentwickelt wird.
Einige externe Personen pflegen wohl die Packete für PHP 4.4.x schneller nach, wie z.B. es bei Debian der Fall ist (wenn es dort nicht sowieso schon vorher gepatch wurde), aber insgesamt kann man schon sagen, dass man langsam aber sicher auf PHP 5 umsteigen sollte.

Meine Quelle: http://www.heise.de/security/news/meldung/80462


PHP 5 wird auch unter Debian Etch enthalten soll, dessen letzter Relase-Termin nach Stable für Ende des Monats angesetzt wurde. Außerdem sind in PHP 5.2 sehr schöne neue Sicherheitseinstellung hinzugekommen, die ich als sehr sinnvoll erachte.




--------------------
Joseph Joubert: "Der Verstand kann uns sagen, was wir unterlassen sollen. - Aber das Herz kann uns sagen, was wir tun müssen."

Sicherheit beim Programmieren: Top 10 application vulnerabilities in 2007
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Manimal
blogger.hvbx.de
#8 Geschrieben am: Do 18.01.2007, 21:13 (+13d 23:45)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 177
Mitglied seit: 16.08.2005


QUOTE (Sascha Ahlers @ Di 2.1.2007, 0:56)
Warum benutzt Ihr nur immer solche Funktionen, wenn PHP schon so viele Möglichkeiten bietet XML-Dateien zu Parsen:
Bei solchen Funktionen kann man schnell auch nicht-komforme XML-Dateien Parsen, was nicht der Sinn von XML ist.

http://www.php.net/dom
http://www.php.net/xml
http://www.php.net/xmlreader

Klingt sehr gut, hast du vielleicht eine Idee wo ich dazu ein Tutorial finde oder direkte Beispiele mit der Amazon XML Schnittstelle?

Danke vorab!


--------------------
HVBX Blog - Was mich bewegt und was ich bewege...
Top
PMEmail PosterUsers Website
Top
 
Sascha Ahlers
#9 Geschrieben am: Do 18.01.2007, 21:30 (+00:17)
Report PostQuote Post

AyomRank 8
Group Icon

Gruppe: Experten Entwicklung
Beiträge: 1699
Mitglied seit: 27.12.2004


Nein, dazu habe ich nichts, ich würde aber wohl eher die SOAP Schnittstelle von Amazon und die PHP SOAP-Funktionen benutzen.


--------------------
Joseph Joubert: "Der Verstand kann uns sagen, was wir unterlassen sollen. - Aber das Herz kann uns sagen, was wir tun müssen."

Sicherheit beim Programmieren: Top 10 application vulnerabilities in 2007
Top
PMEmail PosterUsers WebsiteICQ
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/15817

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
Diskussion: Gibt es AdSense-Alternativen? Ayom-Team 5954 39 Do 18.09.2008, 12:54
Diskussion: Login-Skript mit Sessions, PHP und ... Ayom-Team 298 2 Mo 11.08.2008, 03:33
Diskussion: Wo gibt es gratis Schriften (fonts)? Ayom-Team 2222 9 Do 3.07.2008, 13:08
Diskussion: Flash-Anfänger - wo fängt man an? Ayom-Team 241 2 Di 6.05.2008, 17:00
Diskussion: Geocoding mit Google Map API (Koord ... Ayom-Team 220 1 Mi 16.04.2008, 08:18
Diskussion: Was ist ein Root-Server? Ayom-Team 305 1 Do 13.03.2008, 17:57
Diskussion: client-server call Tuemmel 306 5 Sa 8.03.2008, 16:17
Diskussion: Top 10 Affiliate Programme by Small-n- Ayom-Team 2675 9 Mi 27.02.2008, 12:54
Diskussion: Die nützlichsten Firefox Plugins. Ayom-Team 3811 7 Mo 25.02.2008, 18:03
Diskussion: Domains vermieten, verpachten? Ayom-Team 1414 47 So 27.01.2008, 13:47




Anzeige - [Interessiert an einer Anzeige?]



Anzeigen


[Interessiert an einer Anzeige?]