<?php
/*
 * Created on 2011-8-8
 *
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclipse - PHP - Code Templates
 */
//require_once('./header.php');            //加载header
$link=new linkXml;            
$list = array();
for($j=0;$j<10;$j++){
$list[$j]=$j;
}
$value='test1';
$link->createNode($value,$list);
class linkXml{
public function createNode($value,$list) {
$dom = new DOMDocument();
$dom->load('../data/'.$value.'/iPhone/icontent.xml');
$city = $dom->documentElement; //给XML添加节点要用documentElement 不能用getElementsByTagName
      for($i=0;$i<count($list);$i++){
       
      $element = $dom->createElement('Content'); //创建新的节点
        
     $level = $dom->createAttribute('Level'); //给添加的节点添加上属性
$levelText = $dom->createTextNode('0');
$level->appendChild($levelText);
$element->appendChild($level);

$destPage = $dom->createAttribute('DestPage');
$destPageText = $dom->createTextNode('12');
$destPage->appendChild($destPageText);
$element->appendChild($destPage);

$title = $dom->createAttribute('Title');
$titleText = $dom->createTextNode( $list[$i]);
$title->appendChild($titleText);
$element->appendChild($title);

$city->appendChild($element);
}

$modi = $dom->saveXML();
file_put_contents('../data/'.$value.'/iPhone/icontent.xml', $modi);
}
}
?>其中这一句  $city->appendChild($element);   代码放到服务器就报错 Call to a member function appendChild() on a non-object   这是错误信息 在本机调试没有问题  
本人PHP菜鸟 求大神 解决   在线急等啊

解决方案 »

  1.   

    服务器上的 php 版本比本地的低吧?
    请分别给出!想 DOMDocument 之类尚处于开发阶段的类,每个 php 的小版本都可能有差异
      

  2.   

    服务器是linux的  本地是windows的 。  
      

  3.   

    大家看实在不行 帮我换一下代码  只要实现在XML中添加节点 就OK了   我PHP  才学 不会
      

  4.   

    查看一下 php 的版本号就那么难吗?
      

  5.   

    xuzuning   能说的在明确点吗 我PHP才看两天  很多东西还不是很清楚
      

  6.   

    我感觉 如果单纯的添加节点 没必要用dom吧 ? 
    用simplexml也行啊…… 
      

  7.   

    楼上的  用simplexml  怎么弄啊  我php真的不懂
      

  8.   

    simplexml确实很好用 手册上都是有的!
      

  9.   

    $xml=simplexml_load_file("test.xml");
    $x=$xml->addChild("add_test","add_test");
    $x->addAttribute("add_test","add_test");
    $xml->asXML("test.xml");
      

  10.   

    谢谢  各位的帮忙了  原因找到了  是因为服务器的XML文档不规范导致的