根据php中的特定属性更新xml文件中的单个节点
我有一个名为test.xml的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=
<?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,并编写了如下所示的答案。无论如何,谢谢你关注我的问题