Anzeige - [Hier werben]
(?) Tags raten (?) (edit)
 
Reply to this topicStart new topicStart Poll
Diskussion

XML und PHP

brauch hilfe...

grunet
Geschrieben am: Mo 21.06.2004, 09:21
Report PostQuote Post

AyomRank 6
************

Gruppe: Member (aktiv)
Beiträge: 865
Mitglied seit: 5.02.2004


Sehr geehrte Webmaster Comunity.

Ich bin nun schon den ganzen Morgen am versuchen ein XML Wert via PHP herauszulesen. Und das ohne erfolg... Auch google kann mir keine richtige Hilfe geben... Immer finde ich neue XML Beispiele, aber keiner bringt mich weiter....

Dafür will ich nur was ganz einfaches machen.

Das XML sieht folgender massen aus:

CODE
<?xml version="1.0"?>

<MAIN>
<1>
 <sparte>Sparte1</sparte>
 <keywords>Keywords1</keywords>
</1>
<2>
 <sparte>Sparte2</sparte>
 <keywords>Keywords2</keywords>
</2>
</MAIN>


Wie kann ich jetzt in meine PHP file z.b. das Keyword von Sparte 1 ausgeben?

Bitte um Hilfe, bin echt am anschlag mit meinen zimlich kleinen Programmier erfahrungen.

Vielen Dank grunet


--------------------
FC Zürich Fan Movies and Picutres
Das erste Blog über den FC Zürich. Bilder zu jedem Spiel, Tore und jede Menge Fan Informationen.
FreeBieBlog.ch - Mein Blog... sehe mein Free XBOX 360 Status.
Das Prämienblog. Alles kostenlos. XBOX 360, PSP und Digital Kamera
browsergames.li - Die grösste Sammlung von Browsergames...
Neu: Browsergames-Blog / Das Blog zu den Browsergames
Top
PMEmail PosterUsers WebsiteICQMSN
Top
 
 

#2 Geschrieben am: Mo 21.06.2004, 12:56 (+03:34)
Report PostQuote Post

AyomRank 10
Group Icon 2 Gruppe: Admin

Gruppe: Admin
Beiträge: 5281
Mitglied seit: 25.09.2003


Hallo Gruinet

QUOTE
Auch google kann mir keine richtige Hilfe geben...


Ist ja klar ;-) Google ist auch schlecht... Meine Suche ist vieeeeel besser ;-)

Tippe mal xml in das Suchfeld überhalb dieses Postings ein, dass führt dich dann zu einer Funktion, die dir hilft....

http://www.webmasterforum.ch/faq/wie-parse...-php-a-208.html

Achtung dein XML Code ist nicht einwandfrei.
CODE
$arr['MAIN']['1']['sparte'];
$arr['MAIN']['1']['keywords'];
$arr['MAIN']['2']['sparte'];
$arr['MAIN']['2']['keywords'];
Top
PMEmail PosterUsers Website
Top
 
grunet
#3 Geschrieben am: Mo 21.06.2004, 13:02 (+00:06)
Report PostQuote Post

AyomRank 6
************

Gruppe: Member (aktiv)
Beiträge: 865
Mitglied seit: 5.02.2004


Hallo Alain

Danke für deine Antwort, solche Parser habe ich schon tausende gefunden.
Aber das hilft mir nicht weiter... weil ich nur Bahnhof verstehe.

1. muss ich diesen Code 1 zu 1 kopieren?
2. wo muss ich den code einfügen...

Sorry, aber ich komm echt nicht klar damit...


--------------------
FC Zürich Fan Movies and Picutres
Das erste Blog über den FC Zürich. Bilder zu jedem Spiel, Tore und jede Menge Fan Informationen.
FreeBieBlog.ch - Mein Blog... sehe mein Free XBOX 360 Status.
Das Prämienblog. Alles kostenlos. XBOX 360, PSP und Digital Kamera
browsergames.li - Die grösste Sammlung von Browsergames...
Neu: Browsergames-Blog / Das Blog zu den Browsergames
Top
PMEmail PosterUsers WebsiteICQMSN
Top
 

#4 Geschrieben am: Mo 21.06.2004, 13:20 (+00:17)
Report PostQuote Post

AyomRank 10
Group Icon 2 Gruppe: Admin

Gruppe: Admin
Beiträge: 5281
Mitglied seit: 25.09.2003


1. Jetzt kopierst du das 1:1
2. lerne PHP, es hilft

Du kannst die Funktion irgendwo hin kopieren, musst sie einfach aufrufen und den Array weiterverarbeiten.
CODE

<?PHP

$xmlstring = "<?xml version=1.0 ?>
<MAIN>
<1>
<sparte>Sparte1</sparte>
<keywords>Keywords1</keywords>
</1>
<2>
<sparte>Sparte2</sparte>
<keywords>Keywords2</keywords>
</2>
</MAIN>";






$arr = xml2array($xmlstring);

echo $arr['MAIN']['1']['sparte'],$arr['MAIN']['1']['keywords'];
echo $arr['MAIN']['2']['sparte'],$arr['MAIN']['2']['keywords'];


/**
* Debug! */
do_printR($arr);

function do_printR($arr) {
if (is_array($arr)) {
    while (list($k,$v) = each($arr)) {

        if (is_array($arr[$k])) {

            echo $k.": Array<br>\n";

            do_printR($arr[$k]);

        } else {

            echo $k.": ".$v."<br>\n";

        }

    }

}
}

// end debug

// convert an XML-string to an array

function xml2array($s) {

 if ($Atmp1=explode('>',$s,2)

     /* && ereg('^<\?xml (.*)\?$',$Atmp1[0],$Atmp2)*/) {

//    $A['xml']=$Atmp2[1];

   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;

}
Top
PMEmail PosterUsers Website
Top
 
grunet
#5 Geschrieben am: Mo 21.06.2004, 13:24 (+00:04)
Report PostQuote Post

AyomRank 6
************

Gruppe: Member (aktiv)
Beiträge: 865
Mitglied seit: 5.02.2004


hab das ganze mal so in mein file geladen, aber es gibt mir jetzt nicht aus wenn ich es im browser öffne...?

Und wie ich sehe, ist ja nun das <MAIN>
<1>
<sparte>Sparte1</sparte>
<keywords>Keywords1</keywords>
</1>
<2>
<sparte>Sparte2</sparte>
<keywords>Keywords2</keywords>
</2>
</MAIN>"; in diesem Code drin, aber das möchte ich ja in einem xml file haben.


--------------------
FC Zürich Fan Movies and Picutres
Das erste Blog über den FC Zürich. Bilder zu jedem Spiel, Tore und jede Menge Fan Informationen.
FreeBieBlog.ch - Mein Blog... sehe mein Free XBOX 360 Status.
Das Prämienblog. Alles kostenlos. XBOX 360, PSP und Digital Kamera
browsergames.li - Die grösste Sammlung von Browsergames...
Neu: Browsergames-Blog / Das Blog zu den Browsergames
Top
PMEmail PosterUsers WebsiteICQMSN
Top
 

#6 Geschrieben am: Mo 21.06.2004, 13:38 (+00:13)
Report PostQuote Post

AyomRank 10
Group Icon 2 Gruppe: Admin

Gruppe: Admin
Beiträge: 5281
Mitglied seit: 25.09.2003


Sorry Grunet, aber denken musst du schon noch selber.

Lies das File einfach ein. fopen(), file() siehe http://www.php.net/manual

Du musst das File durch den PHP Parser jagen, also wenn du es auf deinem Computer einfach doppelklickst, wird logischerweise nichts angezeigt.

-> Das Ding muss auf den Server
Top
PMEmail PosterUsers Website
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:

Topic Options Reply to this topicStart new topicStart Poll

 



Günstig werben auf Ayom:
Kontakt: ayom@small-n-tall.com



Anzeigen

Textlinks kaufen oder anbieten





[Hier werben]

 

Statistiken:
Top 10 Autoren heute
Top 50 Autoren insgesamt