2011-11-03 91 views
0

我需要用用户提供的值更新xml节点;但我似乎无法修改simplexml对象。有任何想法吗?如何在php simplexml中修改元素?

XML结构:

<xm> 
    <unit> 
     <building></building> 
    </unit> 
    <unit> 
     <building></building> 
    </unit> 
    <unit> 
     <building></building> 
    </unit> 
    <unit> 
     <building></building> 
    </unit> 
</xm> 

,我试图做到这一点,如:

$original_xml = @simplexml_load_file("../test.xml"); 
$original_xml[$_POST['row_id']-1]->building = $_POST['building_txt']; 

回答

0

做这样的事情:

$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(); 
0

下工作(需要引用unit s结构表示你想检索:

$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());