感谢您投入时间。我是一个像婴儿一样的新手。
我有一个Xml文件counter.xml,如。
<?xml version="1.0"?>
<countIt>
<number>50</number></countIt>
我可以通过SimpleXML读取此文件,如下所示:
$content=simplexml_load_file("counter.xml");
$addid=$content->countIt->number;
现在我想在增加1之类的一些操作之后读取这个值(数字---&gt; id,即55),我想在文件中保存这个节点的新值。 这意味着新值必须反映到xml文件中。
我遇到了这个问题。我尝试了DOM,但我只是帮助创建一个新的Xml文件。
请帮助
SOLUTION:
<?php
$domObj= new DOMDocument();
$domObj->load("counter.xml");
$value= $domObj->getElementsByTagName("countIt");
$newVal = 0 ;
foreach( $value as $val)
{
$ints = $val->getElementsByTagName("number");
$intVal = $ints->item(0)->nodeValue;
$newVal = $intVal+1;
$domObj->getElementsByTagName("number")->item(0)->nodeValue = $newVal;
$domObj->save('counter.xml');
}
?>
答案 0 :(得分:0)
此示例使用xpath()
函数选择要更改的节点:
$xml = simplexml_load_string($x); // assume XML in $x
// get the node
$target = $xml->xpath("/countIt/number");
// change it
$target[0][0] = (int)$target[0] + 1;
看到它有效:https://eval.in/153679
评论:
xpath
会将数组返回$target
,在此示例中,它有1个元素。$target[0] = 50
,为了安全起见,我在添加(int)
的整数
simplexml
asXML()
。