PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   XML (https://www.php-resource.de/forum/xml/)
-   -   Daten aus xml auslesen und per html ausgeben (https://www.php-resource.de/forum/xml/77954-daten-aus-xml-auslesen-und-per-html-ausgeben.html)

schnikemike 13-11-2006 01:49

Daten aus xml auslesen und per html ausgeben
 
Ich habe folgende ausgangs daten in einem xml file.

PHP-Code:

<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<meinedomain>
    <amateurs>
        <amateur>
            <userid>692</userid>
            <nickname>Baralei</nickname>
            <age>19</age>
            <zip>90</zip>
            <country>de</country>
            <gender>m</gender>
            <regtime>11331037</regtime>
            <hardcore>0</hardcore>
            <description>Beschreibungstext!!!!!!!!!!!</description>
            <preview_url>[url]http://www.domain.dex/vorschaubildnrxxx.gif[/url]</preview_url>
</amateur>
        <amateur>
            <userid>1994531</userid>
            <nickname>Geile-Ela</nickname>
            <age>30</age>
            <zip>33</zip>
            <country>de</country>
            <gender>w</gender>
            <regtime>11406214</regtime>
            <hardcore>0</hardcore>
            <description>!!!!!!!!!!!!Beschreibungstext!!!!!!!!!!!</description>
            <preview_url>[url]http://www.domain.dex/vorschaubildnrxxx.gif[/url]</preview_url>
</amateur>
        <amateur>
            <userid>1194</userid>
            <nickname>fan2006</nickname>
            <age>36</age>
            <zip>90</zip>
            <country>de</country>
            <gender>m</gender>
            <regtime>11376017</regtime>
            <hardcore>1</hardcore>
            <description>!!!!!!!!!!!!Beschreibungstext!!!!!!!!!!!</description>
            <preview_url>[url]http://www.domain.dex/vorschaubildnrxxx.gif[/url]</preview_url>
            <sets>
                <set>
                    <id>10532</id>
                    <kind>pics</kind>
                    <gentime>1141891</gentime>
                    <title>Cambilder</title>
                    <hardcore>1</hardcore>
                    <description>Hier mal Camfotos.</description>
                    <preview_url>[url]http://www.domain.dex/vorschaubildnrxxx.gif[/url]</preview_url>
                </set>
                <set>
                    <id>9654</id>
                    <kind>pics</kind>
                    <gentime>11412124</gentime>
                    <title>erste Bilder</title>
                    <hardcore>1</hardcore>
                    <description>Viel Spass!</description>
                    <preview_url>[url]http://www.domain.dex/vorschaubildnrxxx.gif[/url]</preview_url>
                </set>


........................usw



Ich möchte jetzt die xml Datei so auslesen das ich aus den einzelnen angaben eien html Seite gennerieren kann.





Ich möchte folgende Werte in einer liste dann ausgeben, das daraus alle user untereinander mit ihren daten angezeigt werden.



Username = <id> xxxxxx </id>

Art = <kind> xxxxxxxxx</kind>

Anmeldung = <gentime> xxxxxxx</gentime>
Titel = <titel> xxxxx</titel>


.... usw.

+++++++++++++++++++++++++++++++++++


Username = <id> xxxxxx </id>

Art = <kind> xxxxxxxxx</kind>

Anmeldung = <gentime> xxxxxxx</gentime>
Titel = <titel> xxxxx</titel>


.... usw.

+++++++++++++++++++++++++++++++++++++++

usw.


Dies soll natürlich für jeden user aus der xml liste geschehen.

Ich habe hier schon mal mit simplexml_load_file() und var_dump() experimentiert.




PHP-Code:

$xmlurl "amateur.xml";
if (
file_exists($xmlurl)) {
    
$xml simplexml_load_file($xmlurl);

 
$array =   var_dump($xml);
   
} else {
    exit(
'Konnte $xmlurl nicht öffnen.');
}

#print $xml; // n nur  zum testen
// 
for($a=0;$a<count($array);$a++) {
echo 
"array 0".$array[$a++];
echo 
"array 1".$array[$a++];
echo 
"array 2".$array[$a++];
#--------------------
echo "array Last".$array [$a];



Mir ist einfach nicht ganz klar wie ich auf die Objekte zugreifen kann die durch simplexml_load_file() bzw. var_dump() ausgeben werden.


Damit sollte es ja eigendlich machbar sein.

jahlives 13-11-2006 02:04

Im :rtfm: steht doch eigentlich alles zum Thema XML und ansonsten mal :google:

Gruss

tobi

schnikemike 13-11-2006 03:05

Ja eigendlich schon.

leider bekomme ich das irgendwie nicht hin.

Laut google und einigen Seiten müsste es so sein.

PHP-Code:

$xmlurl "user.xml";
if (
file_exists($xmlurl)) {
    
$xml simplexml_load_file($xmlurl);

 
$array$xml->userid[0];

   
} else {
    exit(
'Konnte $xmlurl nicht öffnen.');
}

echo 
"Nickname".$array;


Es kommen aber keine ausgaben.

schnikemike 13-11-2006 03:13

bzw.

Da meine Strucktur des xml files ja anders wie in den meisten Beispielen ist müsste das dann so sein.

Zitat:

<meinedomain>
<amateurs>
<amateur>
<userid>692</userid>
<nickname>Barale</nickname>
PHP-Code:

 $userid$xml->amateurs[0] ->amateur[0] ->userid

Da angeblich bei Elementen mit dem gleichen Namen ein Array daraus wird.

Geht das überhaupt so wie ich es geschrieben habe?

Oder wie greifft man sonst auf das Element " userid" zu?


Ich bin echt am verzweifeln.

Hier nochmal das Script so wie es jetzt ist.

PHP-Code:

if (file_exists($xmlurl)) {
    
$xml simplexml_load_file($xmlurl);


 
$userid $xml->amateurs[0] ->amateur[0] -> userid;

} else {
    exit(
'Konnte $xmlurl nicht öffnen.');
}

echo 
"Nickid".$userid;  { 

Hab hier unter anderem nochmal nachgelesen wer da noch Quellen braucht.

http://www.professionelle-softwareen...simplexml.html

schnikemike 16-11-2006 19:13

Keiner eine idee wie man in aus em xml file die dasten aus userid auslesen kann?


Ich festgestellt das man die wohl besser nicht mit simplexml_load_file machen sollte da die orginal Datei Komplett eingelesen wird (29 MB).

Das ist ein enormer verbrauch an resourcen.


Oder gibt es da eine möglichkeit die Datei nur teilweise auzulesen?


Habe darüber nichts gefunden.

LG

jahlives 16-11-2006 23:57

Zitat:

Oder gibt es da eine möglichkeit die Datei nur teilweise auzulesen?
Kennst du fopen() und fgets() ? Mit diesen beiden kannst du im Zusammenspiel mit einer Schleife sehr einfach bestimmen, wieviele Zeilen der Datei ausgelesen werden sollen. Dann noch mittels eines preg_match() die gewünschten Teile aus der Zeile ausschneiden und was auch immer du damit machen willst machen.

Gruss

tobi

schnikemike 17-11-2006 00:14

Ja kenne ich.


Mir wurde nur immer gesagt ich solle für die auswertung der xml File

simplexml_load_file() verwenden.

Naja werd das wohl dann doch anders lösen.

LG und danke für die Antwort.

jahlives 17-11-2006 02:16

Zitat:

Mir wurde nur immer gesagt ich solle für die auswertung der xml File
simplexml_load_file() verwenden.
Wenn du aber nicht das ganze File einlesen willst, dann wohl eher nicht...

Gruss

tobi

meierhans 21-11-2006 12:30

Wenn man eines dieser Tags(<meinedomain><amateurs><amateur>wegläßt, funktioniert die Ausgabe, seltsam.

foreach($data as $a) {
echo "<tr>";
echo "<td>". $a->userid . "</td>";
echo "<td>". $a->nickname . "</td>";
echo "<td>". $a->age . "</td>";
echo "<td>". $a->country . "</td>";
echo "</tr>";
}

Rolandbar 21-11-2006 18:10

Ich würde mit XSL das XML in HTML Transformieren.
Dafür ist XSL genau da, aber da die Datei 29 MB Gross ist, weiss ich halt auch nicht so recht. Ausgabe Cachen?

mfg Roland

schnikemike 22-11-2006 01:39

Zitat:

Original geschrieben von meierhans
[B]Wenn man eines dieser Tags(<meinedomain><amateurs><amateur>wegläßt, funktioniert die Ausgabe, seltsam.


Du meinst also statt

<meinedomain><amateurs><amateur>



nur

<meinedomain><amateurs>

?

schnikemike 22-11-2006 01:42

Zitat:

Original geschrieben von Rolandbar
Ich würde mit XSL das XML in HTML Transformieren.
Dafür ist XSL genau da, aber da die Datei 29 MB Gross ist, weiss ich halt auch nicht so recht. Ausgabe Cachen?

mfg Roland

ja das wäre auch ne möglichkeit. aber auch da ist wie du schon sagst das Problem mit der Dateigrösse.

schnikemike 27-11-2006 12:37

Das ist die Lösung.


$id_nummer = $xml->amateurs->amateur[$a]->userid;



das gesammte script ist mitlerweile so gros das ich es hier nicht Poste will aber wer es haben will soll sich einfach mal melden.


Daten aus xml File auslesen und geordnet in einer html Seite ausgeben.


In meienm fall wird für jeden User eine Kleines Profil mit vorschaubild erstellt.

furuha 01-12-2006 22:52

Ich hätte gerne das Script und würde es dann auch gerne ein bischen umschreiben.

furuha 02-12-2006 16:58

ansonsten kann mir auch einfach wer helfen(lerne seid 2 tagen php...):

ich will xml files auslesen und in einer liste/tabelle darstellen die wie folgt aussehen:

Code:

<?xml version="1.0" encoding="UTF-8"?>
<gwteambuild version="1.0">
  <gwplayerbuild version="1.0">
    <classsetup primary="Warrior" secondary="Necromancer" />
    <skillbar>
      <skill>Sever Artery</skill>
      <skill>Gash</skill>
      <skill>Final Thrust</skill>
      <skill>"Charge!"</skill>
      <skill>Flurry</skill>
      <skill>Healing Signet</skill>
      <skill>Plague Touch</skill>
      <skill>Resurrection Signet</skill>
    </skillbar>
  </gwplayerbuild>
  <gwplayerbuild version="1.0">
    <classsetup primary="Ranger" secondary="Mesmer" />
    <skillbar>
      <skill>Poison Arrow</skill>
      <skill>Barbed Arrows</skill>
      <skill>Distracting Shot</skill>
      <skill>Concussion Shot</skill>
      <skill>Snare</skill>
      <skill>Troll Unguent</skill>
      <skill>Distortion</skill>
      <skill>Resurrection Signet</skill>
    </skillbar>
  </gwplayerbuild>
  <gwplayerbuild version="1.0">
    <classsetup primary="Ranger" secondary="Elementalist" />
    <skillbar>
      <skill>Burning Arrow</skill>
      <skill>Apply Poison</skill>
      <skill>Distracting Shot</skill>
      <skill>Throw Dirt</skill>
      <skill>Snare</skill>
      <skill>Troll Unguent</skill>
      <skill>Storm Chaser</skill>
      <skill>Resurrection Signet</skill>
    </skillbar>
  </gwplayerbuild>
  <gwplayerbuild version="1.0">
    <classsetup primary="Ranger" secondary="Mesmer" />
    <skillbar>
      <skill>Screaming Shot</skill>
      <skill>Savage Shot</skill>
      <skill>Distracting Shot</skill>
      <skill>Pestilence</skill>
      <skill>Lacerate</skill>
      <skill>Troll Unguent</skill>
      <skill>Mantra of Resolve</skill>
      <skill>Resurrection Signet</skill>
    </skillbar>
  </gwplayerbuild>
  <gwplayerbuild version="1.0">
    <classsetup primary="Necromancer" secondary="Monk" />
    <skillbar>
      <skill>Tainted Flesh</skill>
      <skill>Rotting Flesh</skill>
      <skill>Bitter Chill</skill>
      <skill>Consume Corpse</skill>
      <skill>Blood Ritual</skill>
      <skill>Heal Party</skill>
      <skill>Extinguish</skill>
      <skill>Resurrection Signet</skill>
    </skillbar>
  </gwplayerbuild>
  <gwplayerbuild version="1.0">
    <classsetup primary="Monk" secondary="Mesmer" />
    <skillbar>
      <skill>Blessed Light</skill>
      <skill>Gift of Health</skill>
      <skill>Reversal of Fortune</skill>
      <skill>Guardian</skill>
      <skill>Spirit Bond</skill>
      <skill>Signet of Devotion</skill>
      <skill>Inspired Hex</skill>
      <skill>Drain Enchantment</skill>
    </skillbar>
  </gwplayerbuild>
  <gwplayerbuild version="1.0">
    <classsetup primary="Monk" secondary="Mesmer" />
    <skillbar>
      <skill>Reversal of Fortune</skill>
      <skill>Guardian</skill>
      <skill>Mend Condition</skill>
      <skill>Protective Spirit</skill>
      <skill>Contemplation of Purity</skill>
      <skill>Mantra of Recall</skill>
      <skill>Inspired Hex</skill>
      <skill>Divine Boon</skill>
    </skillbar>
  </gwplayerbuild>
  <gwplayerbuild version="1.0">
    <classsetup primary="Ranger" secondary="Mesmer" />
    <skillbar>
      <skill>Smoke Trap</skill>
      <skill>Barbed Trap</skill>
      <skill>Flame Trap</skill>
      <skill>Storm Chaser</skill>
      <skill>Dodge</skill>
      <skill>Troll Unguent</skill>
      <skill>Distortion</skill>
      <skill>Resurrection Signet</skill>
    </skillbar>
  </gwplayerbuild>
</gwteambuild>

das fett geschriebene soll auch ausgegeben werden. da natürlich immer weiter habs nur einmal makiert.

wäre nett wenn das jemand für mich machen kann.


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:03 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG