国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php讀取xml列表程序

2024-05-04 21:58:41
字體:
來源:轉載
供稿:網友

php讀了xml很方便的,我們下面用dom與php自帶的xml_parser來實例吧,我們先看看wk.xml 文件,其實這里是blogbus的rss文件,代碼如下:

  1. <?xml version="1.0" encoding="gb2312"?> 
  2. <rss version="2.0"> 
  3.  <channel> 
  4.   <title>mikeowen</title> 
  5.   <link>http://mikeowen.blogbus.com</link> 
  6.   <description><![CDATA[Design]]></description> 
  7.   <generator> by blogbus.com </generator> 
  8.   <lastBuildDate>Tue, 30 Jan 2007 13:46:52 +0800</lastBuildDate> 
  9.   <image> 
  10.          <url>http://public.blogbus.com/images/head.gif</url> 
  11.          <title>mikeowen</title> 
  12.          <link>http://mikeowen.blogbus.com</link> 
  13.         </image>  
  14. <item> 
  15.    <title>vanke</title> 
  16.    <description>tff</description> 
  17.    <link>http://mikeowen.blogbus.com/logs/28560579.html</link> 
  18.    <author>mikeowen</author> 
  19.    <pubDate>Fri, 05 Sep 2008 12:41:22 +0800</pubDate> 
  20.   </item> 
  21.   <item> 
  22.    <title>something3</title> 
  23.    <description>eee</description> 
  24.    <link>http://mikeowen.blogbus.com/logs/23972142.html</link> 
  25.    <author>mikeowen</author> 
  26.    <pubDate>Wed, 02 Jul 2008 12:26:40 +0800</pubDate> 
  27.   </item>  
  28.  </channel> 
  29. </rss> 

這是我一個同事的博客rss文件我取下來作實例了吧,下面我們來看看解析xml的方法用dom來做,實例代碼如下:

  1. <?php 
  2.   $doc = new DOMDocument(); 
  3.   $doc->load( 'wk.xml' ); 
  4.    
  5.   $books = $doc->getElementsByTagName( "item" ); 
  6.   foreach$books as $book ) 
  7.   { 
  8.   $authors = $book->getElementsByTagName( "title" ); 
  9.   $author = $authors->item(0)->nodeValue; 
  10.    
  11.   $publishers = $book->getElementsByTagName( "link" ); 
  12.   $publisher = $publishers->item(0)->nodeValue; 
  13.    
  14.   $titles = $book->getElementsByTagName( "pubDate" ); 
  15.   $title = $titles->item(0)->nodeValue; 
  16.    
  17.   echo "$title - $author - $publishern"
  18.   } 
  19. //開源代碼Vevb.com 
  20. ?> 

簡單吧,直接讀取節點然后再取當前第一個節點的值就行了,好了下面我們再看看一種方法用php自然的,代碼如下:

  1. <?php   
  2.   $g_books = array(); 
  3.   $g_elem = null; 
  4.    
  5.   function startElement( $parser$name$attrs )  
  6.   { 
  7.   global $g_books$g_elem
  8.   if ( $name == 'item' ) $g_books []= array(); 
  9.   $g_elem = $name
  10.   } 
  11.    
  12.   function endElement( $parser$name )  
  13.   { 
  14.   global $g_elem
  15.   $g_elem = null; 
  16.   } 
  17.    
  18.   function textData( $parser$text ) 
  19.   { 
  20.   global $g_books$g_elem
  21.   if ( $g_elem == 'link' || 
  22.   $g_elem == 'pubDate' || 
  23.   $g_elem == 'title' ) 
  24.   { 
  25.   $g_bookscount$g_books ) - 1 ][ $g_elem ] = $text
  26.   } 
  27.   } 
  28.    
  29.   $parser = xml_parser_create(); 
  30.    
  31.   xml_set_element_handler( $parser"startElement""endElement" ); 
  32.    
  33.   xml_set_character_data_handler( $parser"textData" ); 
  34.    
  35.   $f = fopen'wk.xml''r' );   
  36.    
  37.   while$data = fread$f, 4096 ) ) 
  38.   { 
  39.   xml_parse( $parser$data ); 
  40.   } 
  41.    
  42.   xml_parser_free( $parser ); 
  43.    
  44.   foreach$g_books as $book ) 
  45.   { 
  46.   echo $book['title']." - ".$book['link']." - "
  47.   echo $book['pubDate']."n"
  48.   } 
  49.   ?> 

這種代碼多一點,單效率要比上面那個高很多的.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 疏附县| 涟源市| 广南县| 四子王旗| 万山特区| 内乡县| 桦川县| 横山县| 霞浦县| 晴隆县| 如皋市| 阳东县| 峨眉山市| 邻水| 吉木萨尔县| 灌云县| 汽车| 西乡县| 英山县| 广汉市| 阜阳市| 玛多县| 沂南县| 凤凰县| 珠海市| 洛隆县| 特克斯县| 尉氏县| 寿宁县| 凤凰县| 江都市| 岳西县| 于都县| 门源| 崇义县| 绥江县| 天全县| 枞阳县| 清新县| 大化| 满洲里市|