php读了xml很方便的,我们下面用dom与php自带的xml_parser来实例吧,我们先看看wk.xml 文件,其实这里是blogbus的rss文件,代码如下:
<?xml version="1.0" encoding="gb2312" <rss version="2.0"> <channel> <title>mikeowen</title> <link>http://mikeowen.blogbus.com</link> <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</url> <title>mikeowen</title> <link>http://mikeowen.blogbus.com</link> </image> <item> <title>vanke</title> <description>tff</description> <link>http://mikeowen.blogbus.com/logs/28560579.html</link> <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</link> <author>mikeowen</author> <pubDate>Wed, 02 Jul 2008 12:26:40 +0800</pubDate> </item> </channel> </rss>
这是我一个同事的博客rss文件我取下来作实例了吧,下面我们来看看解析xml的方法用dom来做,实例代码如下:
<?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"; } //开源代码phprm.com
简单吧,直接读取节点然后再取当前第一个节点的值就行了,好了下面我们再看看一种方法用php自然的,代码如下:
<?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"; }
这种代码多一点,单效率要比上面那个高很多的.
文章链接:
随便收藏,请保留本文地址!
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
刺客信條陰影:貝殼謎語解決方案
2 週前ByDDD
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

WebStorm Mac版
好用的JavaScript開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 Linux新版
SublimeText3 Linux最新版

記事本++7.3.1
好用且免費的程式碼編輯器