Gå til innhold

Bruke "if" med simpleXML


Anbefalte innlegg

Hallo,

Jeg driver å prøver meg litt med simpleXML, men får ikke det til å gå slik jeg vil.

 

Jeg klarer å vise verdien i alle navnenodene og slikt, men jeg klarer ikke å vise innholdet i en node hvis en annen node inneholder et spesielt tall eller ord.

 

F.eks:

 

<events>
<event>
	<navn>Weekend</navn>
	<url>weekend</url>
</event>
<event>
</events>

foreach($xml as $navn){
if ($navn == "Weekend") {
	  ($xml->$url);
	echo 'url: '.$url.'<br />';
}
}

 

Noen som har peil?

 

Mvh

Doffar

Lenke til kommentar
Videoannonse
Annonse

Forstår jeg deg riktig er det dette du er ute etter:

<?php
$xml = simplexml_load_string("
<?xml version='1.0' standalone='yes'?>
<events>
<event>
	<navn>Weekend</navn>
	<url>weekend</url>
</event>
</events>");

foreach($xml->event as $event) {
if((string) $event->navn === 'Weekend') {
	echo "URL => " . $event->url . "\n";
}
}

 

En bedre løsning her ville nok vært å bruke XPath til å finne fram til denne "Weekend"-event'n:

if($event = current($xml->xpath("//event[navn='Weekend']"))) {
echo "URL => " . $event->url . "\n";
}

 

NB: Alltid sørg for at feilmeldinger vises når du skriver kode. Enklest å kjøre error_reporting(E_ALL | E_STRICT); på toppen av fila. Eksempelet ditt inneholder nemlig feil som da ville blitt vist.

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...