就是啊..应该怎么加..又不会重复根节点..并且可以使得php能循环读取xml...请问大家遇到这样的问题是怎么做的...

解决方案 »

  1.   

    <?xml version="1.0" encoding="gb2312"?>
    <message>
    <title>2323</title>
    <author>23232</author>
    <content>23232</content>
    </message>
    <message>
    <title>1243214</title>
    <author>23421</author>
    <content>234243124</content>
    </message>这个不是标准XML格式
      

  2.   

    $xmlfile.="<messages>.$nl;
     $xmlfile.="<message>".$nl;
     $xmlfile.="<title>".$title."</title>".$nl;
     $xmlfile.="<author>".$author."</author>".$nl;
     $xmlfile.="<content>".$Content."</content>".$nl;
     $xmlfile.="</message>".$nl;
     $xmlfile.="</messages>".$nl; $fp=fopen("messages.xml","a+");
     
    fwrite($fp,$xmlfile);   @fclose($fp);   
    ---------------------------//这样生成的应该是标准的xml文档...如下:
    <?xml version="1.0" encoding="gb2312"?>
    <messages>
    <message>
    <title>2323</title>
    <author>23232</author>
    <content>23232</content>
    </message>
    </messages>
    那我现在的疑问是,留言数据都保存在messages.xml 每次提交留言后,又会生成一样的,怎样避免
    重复生成根节点..php又能读取xml文档?不知道有没有好的方法?大家又都是怎么做的.
      

  3.   

    既然用xml,不建议用处理普通文本的方式生成xml文件,用dom等处理.
    如果用也可以,但是生成的文件当然要符合规范.你的文件只要外面
    加上一个<messages>节点就可以了.
    要追加的话,可以让文件指针往回移动后再写入.
    或者用替换也可以.
      

  4.   

    用Dom库生成是吗php5版本都支持这个吧。。
      

  5.   

    $title=trim($_POST['title']);
       $author=trim($_POST['author']);
        $Content=$_POST['EditorDefault'];
          $messages=array();  
        $messages[] = array( 
         "title" => "$title",
         "author" => "$author",
         "content" => "$Content"
            ); 
      $doc = new DOMDocument();   //创建DOM对象
      $doc->formatOutput = true;    
       
      $r = $doc->createElement( "messages" ); //建立根节点
      $doc->appendChild( $r );    
       
      foreach( $messages as $message ) 
      { 
      $b = $doc->createElement( "message" );   //
       
      $title = $doc->createElement( "title" ); //建立子节点title
      $title->appendChild( 
      $doc->createTextNode( $message['title'] ) 
      ); 
      $b->appendChild( $title ); 
       
      $author = $doc->createElement( "author" ); //建立子节点author
      $author->appendChild( 
      $doc->createTextNode( $message['author'] ) 
      ); 
      $b->appendChild( $author); 
       
      $content = $doc->createElement( "content" ); //建立子节点content
      $content->appendChild( 
      $doc->createTextNode( $message['content'] ) 
      ); 
      $b->appendChild( $content ); 
       
      $r->appendChild( $b ); 
      } 
       
      echo $doc->saveXML(); //以上为用DOM生成的xml,我可以在IE里显示出来,值为:  7777 77777 
    查看源文件为如下:那怎么不显示77  而显示7777 77777 <?xml version="1.0"?>
    <messages>
      <message>
        <title>77</title>
        <author>7777</author>
        <content>77777</content>
      </message>
    </messages>
      
    我现在想把这个xml文档保存下来,请问高手怎么做.
    值是由表单提交过来的,还有表单要是再输入值的话,会覆盖掉原来的内容..要每次提交的内容都生成在</message>后面...如:
    <?xml version="1.0"?>
    <messages>
      <message>
        <title>77</title>
        <author>7777</author>
        <content>77777</content>
      </message>
    <message>  //第二次提交的内容
        <title>55</title>
        <author>555</author>
        <content>5555</content>
      </message>
    </messages>
      

  6.   

    留下你的email地址我传给你一个.
      

  7.   

    [email protected]   //谢谢
      

  8.   

    除了smarty外。其他都不是問題。。
    但是要點時間。。
      

  9.   

    建议楼主先把xml和dom了解一下,这个东西不难的
      

  10.   

    fseek -- 在文件指针中定位