感谢您的宝贵时间。我是php的新手,像个婴儿。
我有一个Xml文件counter.xml,像。
<?xml version="1.0"?>
<countIt>
<number>50</number></countIt>
我可以通过SimpleXML读取这个文件,如下所示:
$content=simplexml_load_file("counter.xml");
$addid=$content->countIt->number;
现在我想读取这个值(number-> id即55)在一些操作后,如增量1,我想保存这个节点的新值在文件中。这意味着新值必须反映到XML文件中。
我被这个问题难住了。我尝试了DOM,但我只得到帮助来创建一个新的Xml文件。请帮
解决方案:
<?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');
}
?>
本例使用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
,在这个例子中它有一个元素。 -
$target[0] = 50
,为了安全起见,在添加 之前,我将其与 - 保存新的XML,查看PHP.net上的
asXML()
的simplexml
。
(int)
转换为整数