警告:DOMDocument :: createTextNode()要求参数1为字符串,给定对象

时间:2013-10-24 08:06:16

标签: php xml

我正在尝试在XML文档中附加一个节点。我从我的xml文档中提取了最后一个itemid并将其递增1以在新添加的xml节点中添加唯一ID。但是,当我这样做时,它会抛出错误“警告:DOMDocument :: createTextNode()期望参数1为字符串,对象给定”。我甚至使用var_dump检查了变量的类型,并且在我转换为字符串后它是字符串。但是,我无法理解为什么会出现这样的错误。这是代码。

    $xml =new SimpleXMLElement("goods.xml", null, true);

    // to get the last id
    $last = $xml->xpath("/items/item[last()]");

            // converted to integer
    $id = (int)($last[0]->itemid);

            // converted to string
    $itemid = strval($id+1);
    var_dump($itemid);

      $doc = new DomDocument( '1.0' );
      $doc->preserveWhiteSpace = false;
      $doc->formatOutput = true;

    if( $xml = file_get_contents( 'goods.xml') ) {
        $doc->loadXML( $xml, LIBXML_NOBLANKS );

        // find the headercontent tag
        $items = $doc->getElementsByTagName('items')->item(0);

        $item = $doc->createElement('item');
        $item = $items->appendChild($item);

        $itemid = $doc->createElement('itemid'); 
        $itemid = $item->appendChild($itemid);   
        $value = $doc->createTextNode("".$itemid.""); // error occurs here
        $value = $itemid->appendChild($value);

        $itemname = $doc->createElement('itemname'); 
        $itemname = $item->appendChild($itemname);   
        $value = $doc->createTextNode($name);
        $value = $itemname->appendChild($value);

        $itemprice = $doc->createElement('itemprice'); 
        $itemprice = $item->appendChild($itemprice);   
        $value = $doc->createTextNode($price);
        $value = $itemprice->appendChild($value);

         $doc->save('goods.xml');

当代替使用$ itemid时,我只使用任何文本,这段代码完美无缺。我刚刚开始学习XML,所以如果你知道为什么在一切看起来都没问题的时候出现这个错误,请提供帮助。

感谢。

0 个答案:

没有答案