用PHP&XML编制迷你搜索引擎(二)

原创 2004年10月07日 19:49:00
用PHP&XML编制迷你搜索引擎(二)

三、一个最简单的用PHP显示XML的范例

下面的程序是将解析XML并按照树形结构输出至浏览器,并显示每层的元素总数。
__________________________________________________________

<?


$file 
"demo.xml";// XML文件
 


// 解析XML文件的函数
function xml_parse_from_file($parser$file

if(!
file_exists($file)) 

die(
"Can’t find file "$file"."); 


if(!(
$fp = @fopen($file"r"))) 

die(
"Can’t open file "$file"."); 


while(
$data fread($fp4096)) 

if(!
xml_parse($parser$datafeof($fp))) 

return(
false); 



fclose($fp); 

return(
true); 




function 
start_element($parser$name$attrs)
 
//遇到了开元素标记如<a href="link">就执行这一段,
 //$name=a,$attrs为一个属性数组

global 
$level,$levelcount,$maxlevel;

$level += 1;
if(
$level>$maxlevel)$maxlevel=$level;
$levelcount[$level]+=1;
echo 
"<br>";
for(
$i=1;$i<=($level-1);$i++)echo"|&nbsp;&nbsp;&nbsp;&nbsp;";
if(
$level>0)echo"+----";

echo 
"<font color=red>".trim($name)."&nbsp;</font>";

while ( list( 
$key$val ) = each$attrs ) ) {  //显示属性
  
echo "<font color=green>$key => $val</font>;&nbsp;";
  }



function 
stop_element($parser$name
 
//遇到了开元素标记如</body>就执行这一段,

global 
$level;

$level -= 1;


function 
data($parser$data)
{
global 
$level;
 if(
trim($data)!=""){
  echo 
trim($data);
 }
}

function 
showcount()  //显示每一层的元素总数
{
  global 
$maxlevel,$levelcount;
  echo 
"<br>";
  for (
$i=0;$i<=$maxlevel;$i++){
  echo 
$levelcount[$i]."&nbsp;&nbsp;&nbsp;&nbsp;";
  }
}

global 
$level,$levelcount,$maxlevel;
$level = -1;

// 产生解析器的实例
$parser xml_parser_create(); 

// 设置处理函数
xml_set_element_handler($parser"start_element""stop_element"); 
xml_set_character_data_handler($parser"data"); 
xml_parser_set_option($parserXML_OPTION_CASE_FOLDING0); 

// 解析文件
$ret xml_parse_from_file($parser$file); 
if(!
$ret

die(
sprintf("XML error: %s at line %d"
xml_error_string(xml_get_error_code($parser)), 
xml_get_current_line_number($parser))); 


// 释放解析器
xml_parser_free($parser); 


showcount();

?> 

用PHP&XML编制迷你搜索引擎(一)

用PHP&XML编制迷你搜索引擎(一) 一、认识XML     大家可能对XML还很陌生,我这里不想系统的讲解XML为何许物也,我只是对本文用到的一些概念进行一些介绍,如果您已经使用过XML,哪怕是初...
  • bjbs_270
  • bjbs_270
  • 2004年10月07日 19:48
  • 1152

用PHP&XML编制迷你搜索引擎(四)

用PHP&XML编制迷你搜索引擎(四) _________________________________________________________ 五、mini的搜索引擎 作了如干的铺垫,令人...
  • bjbs_270
  • bjbs_270
  • 2004年10月07日 19:50
  • 1129

用PHP&XML编制迷你搜索引擎(一)

一、认识XML     大家可能对XML还很陌生,我这里不想系统的讲解XML为何许物也,我只是对本文用到的一些概念进行一些介绍,如果您已经使用过XML,哪怕是初学者。您也可以跳过这章。    谈起XM...
  • quanquanone
  • quanquanone
  • 2007年03月13日 12:43
  • 583

用PHP&XML编制迷你搜索引擎(三)

用PHP&XML编制迷你搜索引擎(三) 四、在第三章程序的基础上,可以显示一段子树。 同第二章的代码我就不再注释了。 下面的代码是我们的迷你搜索引擎的基础。 因为,要显示出一个字类别(如程序设计->P...
  • bjbs_270
  • bjbs_270
  • 2004年10月07日 19:49
  • 1019

HTML 4 标题

HTML 4 标题   1.浏览器会自动在标题前后添加一行空行。 例如: 内容1 内容2 结果为 内容1   内容2   2.确保标题标签只用于标题,不能为了使用粗体或大号字体而胡乱用标题标签。应...
  • wulinbanxia
  • wulinbanxia
  • 2016年10月29日 23:17
  • 211

PAT5-08. 迷你搜索引擎

#include #include #include #include #include #include #include using namespace std; string line[1000...
  • u013827143
  • u013827143
  • 2015年02月27日 18:27
  • 257

java写出迷你DVD管理器

这是写出的一个小项目,希望大家能多多指教 import java.util.*; import java.text.*; class DVDMgr  { Scanner input ...
  • clc1196088814
  • clc1196088814
  • 2016年11月17日 08:30
  • 1827

CAD迷你看图常见使用问题与解答

很多网友都是使用cad软件来查看cad文件的,不过,如果你的电脑上没有安装cad软件,可以考虑一下使用CAD迷你看图这款软件来查看cad文件,不仅文件大小比较小,而且可以很好的解决观看cad文件时字体...
  • kong_za
  • kong_za
  • 2017年06月09日 13:38
  • 575

用C++编制Win32 Service (二)

名词: Service Control Manager,服务控制管理器,简称SCM。 Service Control Dispatcher,服务控制发送器,简称SCD。 Servic...
  • SeaWave
  • SeaWave
  • 2006年01月31日 17:50
  • 2011

我用Python写了一个搜索引擎

自己利用空闲时间写的一款再dos下运行的简单搜索引擎,可以再自己给定的网页范围内查找信息,并且下载指定网页上的内容。内中包含简单的工程文档,代码还算规范,所以不需要太多注释就基本能看懂。学习pytho...
  • StoryMonster
  • StoryMonster
  • 2016年12月29日 23:50
  • 1363
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用PHP&XML编制迷你搜索引擎(二)
举报原因:
原因补充:

(最多只允许输入30个字)