根据php中的特定属性更新xml文件中的单个节点

根据php中的特定属性更新xml文件中的单个节点,php,xml,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=

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

我自己找到了答案:

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

我自己找到了答案:

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

什么不起作用?您是否收到异常?我收到内部服务器错误500500错误应该在您的error.log中记录一个错误-如果您发布此错误,它将有所帮助。我在下面发布了解决方案作为答案,但问题是:$xml\u行->attr('signals')=$xml\u行->属性('signals')+1;我试图得到像这样的属性值,这是完全错误的。我将使用的类从simpleXml更改为DOMDocument,并编写了如下所示的答案。不管怎样,谢谢你关注我的问题什么不起作用?您是否收到异常?我收到内部服务器错误500500错误应该在您的error.log中记录一个错误-如果您发布此错误,它将有所帮助。我在下面发布了解决方案作为答案,但问题是:$xml\u行->attr('signals')=$xml\u行->属性('signals')+1;我试图得到像这样的属性值,这是完全错误的。我将使用的类从simpleXml更改为DOMDocument,并编写了如下所示的答案。无论如何,谢谢你关注我的问题