使用php代码获取xml文件中的最新节点值

时间:2013-05-06 03:38:57

标签: php xml

我是新的xml文件..我想使用php脚本获取xml文件的最新节点id value并在我向此xml文件添加一个节点时进行计算..这样的事情...... {添加...

后,下一个节点将为<id>2</id>

假设我有一个如下所示的xml文件:

<id>3</id>

你能指导我用php脚本解决这个问题的方法吗...感谢提前。

现在我找到了我的解决方案

<?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>

因此,在插入新节点时,您可以将增量值增加到$ id。

2 个答案:

答案 0 :(得分:0)

检查此链接:

http://www.phpeveryday.com/articles/PHP-XML-Adding-XML-Nodes-P414.html

它有一个几乎正是你需要的例子 - 它甚至是一本书的例子。请注意,您需要自动增加id,而不是在示例中使用硬编码。

它真的很自我解释。

这是一本很好的参考资料:

http://pt1.php.net/manual/en/simplexmlelement.addchild.php

希望它有所帮助。 : - )

答案 1 :(得分:0)

使用simplexml保持简单:

$xml = simplexml_load_string($x); // assuming XML in $x
$maxid = max(array_map('intval',$xml->xpath("//id")));

它的作用:

  • 使用<id>
  • 获取所有xpath个节点的数组
  • 将每个值转换为integer,以便max()可以完成其工作。

现在使用<book>添加新的$maxid + 1

$book = $xml->addChild('book');
$book->addChild('id',$maxid + 1);
$book->addChild('name','PHP');

在行动中看到它:http://codepad.viper-7.com/5jeXtJ