我有一个名为test.xml的xml文件,其结构如下。
<?xml version="1.0"?>
<markers>
<marker id="1" name="12" signal="23"/>
<marker id="2" name="12" signal="5"/>
<marker id="3" name="12" signal="6"/>
<marker id="4" name="12" signal="0"/>
</markers>
我向我发送ID
的服务器代码发出ajax请求,并希望将signal
中的test.xml
属性增加1。
例如,如果我发送id=3
,那么signal
marker
id
节点的3
属性应7
$id=$_POST['id'];
$xml = new SimpleXMLElement('test.xml');
foreach( $xml->xpath( 'marker' ) as $xml_row ){
if( $xml_row->attributes( 'id' ) == $id ){
$xml_row->attr( 'signals ') = $xml_row->attributes( 'signals' ) + 1;
}
}
$xml->saveXML( 'test.xml' );
文件应该保存。
由于某些问题,我不想重写整个文件,只是更新属性。
我尝试了这个,但我认为它远离正确的答案。有人可以帮忙吗?
CHARACTER SET charset_name
答案 0 :(得分:0)
我自己想出了答案:
$xmldoc = new DOMDocument();
$xmldoc->load('test.xml');
foreach ($xmldoc->getElementsByTagName('marker') as $feeditem) {
if($feeditem->getAttribute('id')==$id){
$sig=$feeditem->getAttribute('signal');
$sig++;
$feeditem->setAttribute('signal',$sig);
}
}
$xmldoc->save('test.xml');