Avatar billede ttopholm Nybegynder
24. februar 2007 - 23:23 Der er 2 kommentarer og
1 løsning

finde et element med simplexml

Hej

Jeg har dette i en fil:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body style="background-color:#CCCCCC; text-align:center;">
<div>
    <span id="test"></span>
</div>
</body>
</html>

Så har jeg et script, der skal finde elementet, hvor id er lig test.

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

function findXML($test,$seek)
{
    if($test['id'] == $seek)
        return 'ok';
    foreach($test as $value)
    {
        findXML($value,$seek);
    }
}

echo findXML($xml,'test');
?>

Det virker også fint, hvis jeg skriver echo 'ok'; istedet for return 'ok'; men hvis jeg bruger return 'ok', så returnere funktionen ikke noget.

Hvorfor ikke det...

Ved godt den ikke returnere elementet lige nu, men det var for at tjekke om funktionen virkede
Avatar billede kalp Novice
24. februar 2007 - 23:30 #1
måske forstår den det ikke.
prøv at gemme ok i en variabel og returner den istedet..

så der står

return $dinVariabel;
Avatar billede kalp Novice
24. februar 2007 - 23:33 #2
hvis jeg har overholdt php syntax så skal det være dette.

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

function findXML($test,$seek)
{
  $okay = "ok";
  if($test['id'] == $seek)
        return $okay;
    foreach($test as $value)
    {
        findXML($value,$seek);
    }
}

echo findXML($xml,'test');
?>
Avatar billede ttopholm Nybegynder
02. marts 2007 - 14:39 #3
Løste den selv... med et lidt simplere sætning, også istedet for returnere manipulere jeg bare det pågældende element når jeg fandt den.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester