使用php代码获取xml文件中的最新节点值
我是新的wih xml文件..我想使用php脚本获取xml文件的最新节点id value
,并在我向此xml文件中添加一个更多节点时计算它..类似这样的内容.. <id>2</id>
并且在添加...之后下一个节点将是<id>3</id>
假设我有如下的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book>
<id>1</id>
<name>Java</name>
</book>
<book>
<id>2</id>
<name>c++</name>
</book>
</books>
你能指导我哪种方法来解决这个PHP脚本...感谢提前。
现在我找到了我的解决方案
//auto id
$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadXML(file_get_contents ('../books.xml')); // loads your xml
$xpath = new DOMXPath($doc); ///create object xpath
$nlist = $xpath->query("//books/book/id");
$count = $nlist->length; //count number of node
$id = $nlist->item($count-1)->nodeValue;
$id+=1;
echo $id ;
//end auto id
所以,当插入新节点时,你可以获得增量一个值为$ id。
用simplexml
保持简单:
$xml = simplexml_load_string($x); // assuming XML in $x
$maxid = max(array_map('intval',$xml->xpath("//id")));
它能做什么:
xpath
获取所有<id>
节点的数组, integer
以便max()
可以完成其工作。 现在用$maxid + 1
添加一个新的<book>
:
$book = $xml->addChild('book');
$book->addChild('id',$maxid + 1);
$book->addChild('name','PHP');
看到它的行动:http://codepad.viper-7.com/5jeXtJ
检查这个链接:
http://www.phpeveryday.com/articles/PHP-XML-Adding-XML-Nodes-P414.html
它几乎就是你需要的一个例子 - 它甚至是一本书的例子。 请注意,您需要自动增加id,并且不要在示例中对其进行硬编码。
它真的很自我解释。
继承人为您阅读了一个很好的参考资料:
http://pt1.php.net/manual/en/simplexmlelement.addchild.php
希望它有帮助。 :-)
链接地址: http://www.djcxy.com/p/29839.html