zz22 发表于 2015-8-27 13:53:38

php XMLWriter类的简单示例

  这是一段写博客RSS的代码,不多说



include 'mysql.php';
$mysql= mysql::getObject();
$mysql->query("SELECT * FROM post");

$xml = new XMLWriter();
$xml->openUri('hello.xml'); //or 'php://output'

$xml->setIndentString('   ');
$xml->setIndent(true);
// start
$xml->startDocument('1.0', 'UTF-8');
// <rss version="2.0">
$xml->startElement('rss');
   $xml->writeAttribute('version','2.0');
// <channel>
$xml->startElement('channel');
   // title
   $xml->startElement('title');
          $xml->text('title');
   $xml->endElement();
   // link
   $xml->startElement('link');
          $xml->text('http://foodstory.me/post/');
   $xml->endElement();
   // description
   $xml->startElement('description');
          $xml->text('');
   $xml->endElement();
   // language
   $xml->startElement('language');
          $xml->text('zh-cn');
   $xml->endElement();
   // category
   $xml->startElement('category');
          $xml->text('IT');
   $xml->endElement();
   // copyright
   $xml->startElement('copyright');
          $xml->text('copyright 2011 foodstory.me');
   $xml->endElement();
   // for item
   while( $row = $mysql->fetch() )
   {
      $xml->startElement('item');
         // title
      $xml->startElement('title');
             $xml->text( $row['title']);
      $xml->endElement();
      // link
      $xml->startElement('link');
             $xml->text( 'http://foodstory.me/post/'.$row['id'].'.html');
      $xml->endElement();
      // description
      $xml->startElement('description');
             $xml->text( $row['text'] );
      $xml->endElement();
      // pubDate
      $xml->startElement('pubDate');
             $xml->text( date('D, d M Y H:i:s T', $row['time']) );
      $xml->endElement();
      // category tag author need to write .over
      $xml->endElement(); // item
   }
$xml->endElement(); // channel
$xml->endElement();// rss

$xml->endDocument();
// $xml->flush();
  前面的mysql.php 是封装的mysql数据库功能,单例模式,所以取对象是静态方法 mysql::getObject();
  代码很简单
  
  openUri('') 方法的参数可以是一个文件,那么xml数据就写入到这个文件
  或者 php://output 输出到缓冲区,然后 flush方法输出到页面
页: [1]
查看完整版本: php XMLWriter类的简单示例