Hey,

Ik lees de volgende xml-data via simplexml in:

<?
<document>
<item>
<row>
<datum>2010-09-04</datum>
<oms>omschrijving 1</oms>
<titel>testje 1</titel>
</row>
<row>
<datum>2010-09-05</datum>
<oms>omschrijving 2</oms>
<titel>testje 2</titel>
</row>
</item>
</document>
?>

Dmv van een for-loop lees ik alle regels van de row in. Dit doe ik echter door hardcoded het veld te noemen (dus $tst[] = $xml->item[0]->row->datum;);

Kan het niet simpeler door bij de naam van het variabel in de rij row op te vragen? Dus kan ik de naam van bijvoorbeeld variabel datum bepalen en vervolgens dit veld gebruiken?
Even getest en dit werkt

<?php

/**
*
*
* @version $Id$
* @copyright 2010
*/
echo findDatum("2010-09-04");

function findDatum($date){
//$xml = simplexml_load_file("yourdatafile");
$xml = simplexml_load_string("<document>
<item>
<row>
<datum>2010-09-04</datum>
<oms>omschrijving 1</oms>
<titel>testje 1</titel>
</row>
<row>
<datum>2010-09-05</datum>
<oms>omschrijving 2</oms>
<titel>testje 2</titel>
</row>
</item>
</document>
");
foreach ($xml->item->row as $row){
if ((string)$row->datum == $date) {
return (string)$row->titel . (string)$row->oms .(string)$row->datum;
}
}
}

?>

Groet CS
Ik had in de code hiervoor de file al als string ingeladen ... was dus ook niet de oplossing. Zelf maar even verder gezocht en uiteindelijk het volgende gevonden:

<?
$attributes = $this->xml->item[0]->row[0];
foreach ($attributes as $attributeName => $attributeValue){
$attribName = strtolower(trim((string)$attributeName));
$attribVal = trim((string)$attributeValue);
$this->content['test'][0][$attribName] = $attribVal;
}
?>

Dit is precies wat ik nodig heb ... allen (met name CS) bedankt voor de hulp!

THX

Reageren