xml地图|网站地图|网站标签 [设为首页] [加入收藏]
php读取xml列表程序宝马娱乐在线:
分类:网络频道

?>
简单吧,直接读取节点然后再取当前第一个节点的值就行了.好了下面我们再看第种方法用php  自然的.

<?xml version=”1.0″ encoding=”utf8″?>
<books>
<book>
<author>Jack Herrington</author>
<title>PHP Hacks</title>
<publisher>O'Reilly</publisher>
</book>
<book>
<author>Jack Herrington</author>
<title>Podcasting Hacks</title>
<publisher>O'Reilly</publisher>
</book>
</books>

<?php
  $doc = new DOMDocument();
  $doc->load( 'wk.xml' );
 
  $books = $doc->getElementsByTagName( "item" );
  foreach( $books as $book )
  {
  $authors = $book->getElementsByTagName( "title" );
  $author = $authors->item(0)->nodeValue;
 
  $publishers = $book->getElementsByTagName( "link" );
  $publisher = $publishers->item(0)->nodeValue;
 
  $titles = $book->getElementsByTagName( "pubDate" );
  $title = $titles->item(0)->nodeValue;
 
  echo "$title - $author - $publishern";
  }

复制代码 代码如下:

php读了xml很方便的,我们下面用dom与php自带的xml_parser来实例吧,我们先看看wk.xml 文件, 其实这里是blogbus的rss文件哦,

// 用 DOM 读取 XML
$doc = new DOMDocument();
$doc->load(‘test.xml');
$books = $doc->getElementsByTagName(“book”);
foreach( $books as $book ){
$authors = $book->getElementsByTagName(“author”);
$author = $authors->item(0)->nodeValue; // nodeValue属 性可根据节点的类型来设置或返回某个节点的值。
$publishers = $book->getElementsByTagName(“publisher”);
$publisher = $publishers->item(0)->nodeValue;
$titles = $book->getElementsByTagName( ”title” );
$title = $titles->item(0)->nodeValue;
echo ”Title: $title <br> Author: $author <br> Publisher: $publisher<br><hr><br>”;
}

<?php 
  $g_books = array();
  $g_elem = null;
 
  function startElement( $parser, $name, $attrs )
  {
  global $g_books, $g_elem;
  if ( $name == 'item' ) $g_books []= array();
  $g_elem = $name;
  }
 
  function endElement( $parser, $name )
  {
  global $g_elem;
  $g_elem = null;
  }
 
  function textData( $parser, $text )
  {
  global $g_books, $g_elem;
  if ( $g_elem == 'link' ||
  $g_elem == 'pubDate' ||
  $g_elem == 'title' )
  {
  $g_books[ count( $g_books ) - 1 ][ $g_elem ] = $text;
  }
  }
 
  $parser = xml_parser_create();
 
  xml_set_element_handler( $parser, "startElement", "endElement" );
 
  xml_set_character_data_handler( $parser, "textData" );
 
  $f = fopen( 'wk.xml', 'r' ); 
 
  while( $data = fread( $f, 4096 ) )
  {
  xml_parse( $parser, $data );
  }
 
  xml_parser_free( $parser );
 
  foreach( $g_books as $book )
  {
  echo $book['title']." - ".$book['link']." - ";
  echo $book['pubDate']."n";
  }
  ?>

/*
在脚本的顶部,用一些示例图书装入了 books 数组。这个数据可以来自用户也可以来自数据库。
示例图书装入之后,脚本创建一个 new DOMDocument,并把根节点 books 添加到它。然后脚本为每本书 的 author、title 和 publisher 创建节点,并为每个节点添加文本节点。每个 book 节点的最后一步是重新把它添加到根节 点 books。
使用 DOM 的真正价值在于它创建的 XML 总是格式正确的。但是如果不能用 DOM 创建 XML 时该怎么办?
Xml代码

这种代码多一点,单效率要比上面那个高很多的.

实例中用到的 test.xml 如下:

这是我一个同事的博客rss文件我取下来作实例了吧.下面我们来看看解析xml 的方法用dom来做,

复制代码 代码如下:

<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
 <channel>
  <title>mikeowen</title>
  <link>http://mikeowen.blogbus.com&lt;/link&gt;
  <description><![CDATA[Design]]></description>
  <generator> by blogbus.com </generator>
  <lastBuildDate>Tue, 30 Jan 2007 13:46:52 +0800</lastBuildDate>
  <image>
         <url>http://public.blogbus.com/images/head.gif&lt;/url&gt;
         <title>mikeowen</title>
         <link>http://mikeowen.blogbus.com&lt;/link&gt;
        </image>
<item>
   <title>vanke</title>
   <description>tff</description>
   <link>http://mikeowen.blogbus.com/logs/28560579.html&lt;/link&gt;
   <author>mikeowen</author>
   <pubDate>Fri, 05 Sep 2008 12:41:22 +0800</pubDate>
  </item>
  <item>
   <title>something3</title>
   <description>eee</description>
   <link>http://mikeowen.blogbus.com/logs/23972142.html&lt;/link&gt;
   <author>mikeowen</author>
   <pubDate>Wed, 02 Jul 2008 12:26:40 +0800</pubDate>
  </item>
 </channel>
</rss>

/*
脚本首先设置 g_books 数组,它在内存中容纳所有图书和图书信息,g_elem 变量保存脚本目前正在处理的标记的名称。然后脚 本定义回调函数。在这个示例中,回调函数是 startElement、endElement 和 textData。在打开和关闭标记的时候,分别调 用 startElement 和 endElement 函数。在开始和结束标记之间的文本上面,调用 textData。
在这个示例中,startElement 标记查找 book 标记,在 book 数组中开始一个新元素。然 后,textData 函数查看当前元素,看它是不是 publisher、title 或 author 标记。如果是,函数就把当前文本放入当前图 书。
为了让解析继续,脚本用 xml_parser_create 函数创建解析器。然后,设置回调句柄。之后,脚本读取文件并把文件的大块 内容发送到解析器。在文件读取之后,xml_parser_free 函数删除解析器。脚本的末尾输出 g_books 数组的内容。
*/
// 用正则表达式解析 XML

复制代码 代码如下:

您可能感兴趣的文章:

本文由宝马娱乐在线发布于网络频道,转载请注明出处:php读取xml列表程序宝马娱乐在线:

上一篇:PHP Date()日期时间函数详解 下一篇:php rss分析类程序
猜你喜欢
热门排行
精彩图文