I need to update an xml node with an user supplied value; but I can't seem to be able to modify the simplexml object. any ideas?
xml structure:
<xm>
<unit>
<building></building>
</unit>
<unit>
<building></building>
</unit>
<unit>
<building></building>
</unit>
<unit>
<building></building>
</unit>
</xm>
And I am trying to do it like:
$original_xml = @simplexml_load_file("../test.xml");
$original_xml[$_POST['row_id']-1]->building = $_POST['building_txt'];
Do something like this:
$units = @simplexml_load_file("../test.xml");
$i = 1;
foreach($units->unit as $unit)
{
if($i == $_POST['row_id'])
{
$unit->building = $_POST['building_txt'];
}
$i++;
}
echo $units->asXML();
The following works (you need to reference the unit
s structure to indicate the row you'd like to retrieve:
$xml = simplexml_load_string('<xm>
<unit>
<building></building>
</unit>
<unit>
<building></building>
</unit>
<unit>
<building></building>
</unit>
<unit>
<building></building>
</unit>
</xm>');
$row = $_POST['row_id'] - 1;
$xml->unit[$row]->building = 'Test';
var_dump($xml->asXML());