根据php

时间:2017-01-05 15:46:23

标签: php xml

我有一个名为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

1 个答案:

答案 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');