使用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

    上一篇: get the latest node value in xml file using php code

    下一篇: Saving returned XML data in PHP to an XML file