PHP 和 XML: 使用expat函数(一)

  可扩展标识语言(Extensible Markup Language )明显是大多数开发人员将想要将其加入到他们的工具箱中的东西。XML是一种W3C的标准,它是开放的,语言中性的,API中性的,流式的,文本的,人类可读 的, 并且是一种将结构化数据带到web上的一种方法。XML是SGML的一个子集,它本身并不是一种标识 语言,但是 它允许作者来定义他们自已的标识语言,以便同分级数据保持更好的一致性。

  现在,用PHP 分析XML文档已经不是一个象我以前在web和其它地方所看到的被覆盖得很深的专题了。 在 PHP手册中已经提供了一些对XML分析函数非常有用的信息,但是这个看上去好象就是我所能找到的 全部的信 息了。其它的语言看上去比PHP已经有了更多的关于XML的信息和工作实例,所以在这篇文章 中,我将试图为 改变这种情况作出我的一部分努力。

  我将带领读者体验一个相当简单的XML的应用,那个应用是为我的网站所做的新闻系统的实现。我确实在 我的网站使用了这个应用,现在它工作的很好。如果你喜欢你可以自由地使用它。好了,让我们开始吧!

  为了在PHP中使XML分析函数有效,你需要一个支持XML 的模块在你的web服务器上。这就意味着你将可能 不得不重新编译你的模块,以便可以支持XML,请参考这里来查看如何做到的更多的信息。XML 分析函数现在 真正地包含在一种SAX分析器expat中,它提供了 关于XML的简单的函数。另一种分析器是DOM分析器,它更容 易使用,关于它的一个例子就是微软的MSXML分析器组件,它可以让程序员通过操纵一种树状样式的对象来处 理结点和元素。expat分析器(或任意的SAX 分析器)允许你分析一个XML文档的实现方法是在对XML文档进行分 析的时候对不同的标记类型指定回调函数来完成的。当分析器开始分析你的XML文档并且遇上了一个标记,它 将调用你的函数,并且在继续往下 执行之前由你的函数对特定的标记进行处理。你可以把它看作是一种事件 驱动的方法。

  让我们看一个使用‘Newsboy‘类来分析的XML文档

--------------------------------------------------------------------------------

mynews.xml

03/31/2000

Sooo Busy !

I haven‘t posted anything here for a while now as I have been busy with work(have to pay those

bills!).

I have just finished a neat little script that stores a complete record set in a session

variable after

doing an SQL query. The neat part is that an XML doc is stored in the session variable

an when paging

through the results (often near 1000!) the script displays 50 results at a time from the

XML doc in the

session variable instead of doing another query against the database. It takes a BIG load

off of the

database server.

03/25/2000

NewsBoy Class

Converted Newsboy to a PHP class to allow better abstraction (as far as PHP allows.)

Guess that means this is version 0.02 ?!

Newsboy will have a section of it‘s own soon on how to use and customize the class.

03/24/2000

NewsBoy is up!

I have just finished NewsBoy v0.01 !!!

It looks quite promising. You may ask, ""What the heck is it?!".

Well it‘s a simple news system for web-sites, written in PHP, that makes use of XML

for

the news data format allowing easy updating and portability between platforms.

It uses the built in expat parser for Apache.

This is just the very first version and there will be loads of improvements as the

project progresses.

03/24/2000

Romeo must Die

Saw a really cool movie today at Mann called ‘Romeo must Die‘

Nice fight scenes for a typical kung-fu movie with some ‘Matrix‘ style effects.

One particular cool effect was the ‘X-Ray Vision‘ effect that occured in various

fight scenes.

The hero, played by Jet Li, strikes a bad guy and you can see the bone in his arm

crack, in X-RAY vision.

There were some funny scenes too when Jet has to play American football with the

bad guys.

The official website for the movie is <A HREF=‘http://www.romeo-must-die.com‘

here </A

<IMG src="http://img.jcwcn.com/attachment/portal"

时间: 2025-01-01 15:01:19

PHP 和 XML: 使用expat函数(一)的相关文章

error: &lt;class &#39;xml.parsers.expat.ExpatError&#39;&gt;, syntax error: line 1, column 0: file: /usr/local/lib/python2.7/xmlrpclib.py line: 557

当linux设备上开启sonar6.2时, supervisorctl status报如下错误: error: <class 'xml.parsers.expat.ExpatError'>, syntax error: line 1, column 0: file: /usr/local/lib/python2.7/xmlrpclib.py line: 557 关闭sonar6.2时,报如下错误: error: <class 'socket.error'>, [Errno 113]

php xml 转array 函数 (原创)

/** *Author zhudongchang *Date 2015/6/12 *xml 转array 函数 *@param string $xmlStr xml字符串 *@return string */ function convertXmlToArray($xmlStr){ $patten=<<<EOT /(^\s*<(\s*[a-zA-Z0-9_='":]+\s*)+>.*<\s*\/(\s*[a-zA-Z0-9_='":]+\s*)+&g

php基础知识【函数】(8)xml和变量函数

 一.XML函数 参数类型 data    --string,需要解析的数据集. parser  --resource,一个指向要取得字节索引的 XML 解析器的引用.  1.创建和释放XMl解析器 xml_parser_create([string encoding]) --建立一个新的 XML 解析器并返回可被其它 XML 函数使用的资源句柄. xml_parser_free(parser) --释放指定的 XML 解析器 2.获取错误信息 xml_error_string (code) -

php之XML转数组函数的方法

<?/** * xml2array() will convert the given XML text to an array in the XML structure. * Link: http://www.bin-co.comphp/scripts/xml2array/ * Arguments : $contents - The XML text *                 $get_attributes - 1 or 0. If this is 1 the function wil

PHP数组和XML相互转换的函数

//数组转xml function ArrtoXml($arr) { if(!is_array($arr) || count($arr) == 0) return ''; $xml="<xml>"; foreach($arr as $key => $val) { if(is_numeric($val)) { $xml.="<".$key.">".$val."</".$key."&g

XML转义--SQL函数

XML BI Publisher 做发票, 物料型号中有 XML 关键字符,因此需要转义 ------------------------------------------------------- -- PLSQL -- 傳入字串,將特殊符號轉成符合XML格式 ------------------------------------------------------- FUNCTION REPLACE_FOR_XML(P_STR IN VARCHAR2) RETURN VARCHAR2 i

PHP XML Expat 解析器

PHP XML Expat 解析器 内建的 Expat 解析器使在 PHP 中处理 XML 文档成为可能. XML 是什么? XML 用于描述数据,其焦点是数据是什么.XML 文件描述了数据的结构. 在 XML 中,没有预定义的标签.您必须定义自己的标签. 如需学习更多关于 XML 的知识,请访问我们的 XML 教程. Expat 是什么? 如需读取和更新 - 创建和处理 - 一个 XML 文档,您需要 XML 解析器. 有两种基本的 XML 解析器类型: 基于树的解析器:这种解析器把 XML

PHP XML Parser函数

PHP XML Parser 函数 PHP XML Parser 简介 XML 函数允许您解析 XML 文档,但无法对其进行验证. XML 是一种用于标准结构化文档交换的数据格式.您可以在我们的 XML 教程 中找到更多有关 XML 的信息. 该扩展使用 Expat XML 解析器. Expat 是一种基于事件的解析器,它把 XML 文档视为一系列事件.当某个事件发生时,它调用一个指定的函数处理它. Expat 是无验证的解析器,忽略任何链接到文档的 DTD.但是,如果文档的形式不好,则会以一个

雷林鹏分享:PHP XML Expat 解析器

内建的 Expat 解析器使在 PHP 中处理 XML 文档成为可能. XML 是什么? XML 用于描述数据,其焦点是数据是什么.XML 文件描述了数据的结构. 在 XML 中,没有预定义的标签.您必须定义自己的标签. 如需学习更多关于 XML 的知识,请访问我们的 XML 教程. Expat 是什么? 如需读取和更新 - 创建和处理 - 一个 XML 文档,您需要 XML 解析器. 有两种基本的 XML 解析器类型: 基于树的解析器:这种解析器把 XML 文档转换为树型结构.它分析整篇文档,