/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Søge i XML fil
Fra : Ukendt


Dato : 19-01-07 08:26

Hejsa NG

Jeg prøver at søge i en XML file efter en bestemt værdi.

PHP:
$Myid = $_GET['id'];
$_SESSION['holder'][$Myid] = 1 + $_SESSION['holder'][$Mydid];
foreach ($_SESSION['holder'] as $alder => $antal) {
print "$alder (antal: $antal) <br />";
}

XML:
<root>
<item value="1001">
<navn>Hans Jensen</navn>
<alder>45</alder>
</item>

<item value="1002">
<navn>Anders Nielsen</navn>
<alder>32</alder>
</item>

<item value="1003">
<navn>Mette Olesen</navn>
<alder>28</alder>
</item>
</root>

$_GET['id'] vil indeholde f.eks. 1002 herefter vil jeg gerne hente alle
child node under det pågældende parent node.


Jeg er rimelig grøn hvad PHP/XML angår ...

--
Rene


 
 
Christoffer Kjeldgaa~ (19-01-2007)
Kommentar
Fra : Christoffer Kjeldgaa~


Dato : 19-01-07 14:19

René Mølsted skrev:
> $_GET['id'] vil indeholde f.eks. 1002 herefter vil jeg gerne hente alle
> child node under det pågældende parent node.

Du skal have fat i simplexml_load_string(), som tager din XML-fil og
returnerer et objekt af klassen SimpleXMLElement med de data din XML
indeholder.
Jeg har lavet et lille eksempel, som tager udgangspunkt i den XML du skrev:

<?php
$Myid = 1002;
$num = 0;

$xmlFile = file_get_contents('din-xml-fil.xml');
$xml = simplexml_load_string($xmlFile);

// Løber items igennem for at finde den korrekte value:
for ($i = 0; $i < count($xml); $i++)
if ($Myid == $xml->item[$i]->attributes()->value)
$num = $i;

print $xml->item[$num]->navn; // Udskriver Anders Nielsen
print $xml->item[$num]->alder; // Udskriver 32
?>

Bemærk dog at det kun vil virke med PHP 5.

--
Christoffer Kjeldgaard Petersen
http://sappy.dk/

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste