Gå til innhold

[Løst] Fleire element i ein tagg - XML og PHP


Anbefalte innlegg

Hei,

Nokon som veit korleis eg kan få ut eit spesielt element der det er fleire tagger av same sort?

Vanskeleg å forklare, men sjå på dette dømet:

 

<album position="5">
<artist>Killswitch Engage</artist>
<title>As Daylight Dies</title>
<mbid>d07acae2-94d6-45b1-a7ea-8577ed88b3d3</mbid>
−
<url>
http://www.last.fm/music/Killswitch+Engage/As+Daylight+Dies
</url>
<image size="small">http://userserve-ak.last.fm/serve/64s/12677059.jpg</image>
<image size="medium">http://userserve-ak.last.fm/serve/126/12677059.jpg</image>
−
<image size="large">
http://userserve-ak.last.fm/serve/174s/12677059.jpg
</image>
−
<image size="extralarge">
http://userserve-ak.last.fm/serve/300x300/12677059.jpg
</image>
</album>

 

Sei at eg vil ha ut medium no. Korleis i alle dager får eg ut det? Dette har eg vanskeleg for å sjå, nytter ikkje!

Takker for alle svar.

 

Redigert: Adressa kan variere frå bilete til bilete, så å berre ha biletenamnet nytter ikkje.

Endret av steffenz
Lenke til kommentar
Videoannonse
Annonse

Siden jeg er i godt humør og savner å leke med PHP, prøvde jeg meg frem på forskjellige måter og endte opp med følgende kode som jeg tror gjør det du ber om.

 

test.xml:

 

<?xml version="1.0" encoding="UTF-8"?>
<albumlist>
<album position="1">
	<artist>Killswitch Engage</artist>
	<title>As Daylight Dies</title>
	<mbid>d07acae2-94d6-45b1-a7ea-8577ed88b3d3</mbid>
	<url>http://www.last.fm/music/Killswitch+Engage/As+Daylight+Dies</url>

	<images>
		<small>http://userserve-ak.last.fm/serve/64s/12677059.jpg</small>
		<medium>http://userserve-ak.last.fm/serve/126/12677059.jpg</medium>
		<large>http://userserve-ak.last.fm/serve/174s/12677059.jpg</large>
		<extralarge>http://userserve-ak.last.fm/serve/300x300/12677059.jpg</extralarge>
	</images>
</album>
<album position="2">
	<artist>Phideaux</artist>
	<title>Number Seven</title>
	<mbid>d07acae2-94d6-45b1-a7ea-8577ed88b3d3</mbid>
	<url>http://www.last.fm/music/Phideaux/Number+Seven</url>

	<images>
		<small>http://userserve-ak.last.fm/serve/64s/32661521.jpg</small>
		<medium>http://userserve-ak.last.fm/serve/126/32661521.jpg</medium>
		<large>http://userserve-ak.last.fm/serve/174s/32661521.jpg</large>
		<extralarge>http://userserve-ak.last.fm/serve/300x300/32661521.jpg</extralarge>
	</images>
</album>
</albumlist>

 

 

test.php:

<?php
$xml = simplexml_load_file( 'test.xml' );

foreach( $xml->children() as $album )
{
echo '<img src="' . $album->images->small . '" />';
}
?>

 

Hvis ting fungerer på samme måte hos deg som det gjør hos meg, skal du ende opp med dette:

 

daa9b4cc47bbe56da773f403def8814b.png

 

Dette var, som du ser, veldig simpelt, men jeg håper det kan hjelpe deg med å finne en bedre og endelig løsning!

 

Jeg måtte gjøre et par forandringer i måten du organiserer XML-filene på men jeg håper ikke dette skaper store problemer. Grunnen til at jeg valgte å lage egne elementer for hver bildestørrelse var argumenter jeg fant på denne siden, men si ifra hvis dette er uaktuelt.

 

Oppdatering: Følgende kode vil fungere på samme måte med de originale XML-dataene dine:

 

<?php
$xml = simplexml_load_file( 'test.xml' );

foreach( $xml->children() as $album )
{
foreach( $album->image as $image )
{
	if( $image['size'] == 'small' )
	{
		echo '<img src="' . $image . '" />';
	}
}

}
?>

Endret av Runar
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...