我看了你的那个帖子,我想可以通过另外一个方法来做:  把HTML先转换成XML,方法是替换,我试了一下,在XMLSPY里面通过well-form检查,然后用XMLDOM的方法进行该XML文件的递归。另外,我也很懒,不想写代码,我把我替换过程写出来:
1、替换“<p>”为空。
2、替换“<DT>”为空。
3、替换“FOLDED”为“FOLDED="true"”。
4、替换“&”为“&amp;”。
5、替换“<!DOCTYPE NETSCAPE-Book-file-1>”为空。
6、在文件头加上<?xml version='1.0' encoding='gb2312'?><root>,在文件尾加上</root>。到此为至,就能把这个HTML转换成一个XML文件:<?xml version='1.0' encoding='gb2312'?>
<root>
<!-- This is an automatically generated file.
It will be read and overwritten.
Do Not Edit! -->
<TITLE>Books</TITLE>
<H1>Books</H1>
<DL>
    <H3 FOLDED="true" ADD_DATE="1064990828">下载</H3>
    <DL>
        <H3 FOLDED="true" ADD_DATE="1064992390">下载1</H3>
        <DL>
        </DL>
        <H3 FOLDED="true" ADD_DATE="1064992468">下载2</H3>
        <DL>
            <A HREF="http://search2.onlinedown.net/search.asp?page=30&amp;keyword=e" ADD_DATE="1064396428" LAST_VISIT="1066637968" LAST_MODIFIED="1064396433">华军软件园-搜索引擎</A>
            <A HREF="http://www.skyhits.com/02/news03/game_jindian.htm" ADD_DATE="1057718758" LAST_VISIT="1066637968" LAST_MODIFIED="1057718765">经典小游戏下载</A>
        </DL>
        <H3 FOLDED="true" ADD_DATE="1064992486">下载3</H3>
        <DL>
        </DL>
        <A HREF="http://like.nease.net/lformat.htm" ADD_DATE="1057846802" LAST_VISIT="1066637968" LAST_MODIFIED="1057846807"> □ 低格软件下载</A>
        <A HREF="http://www.microsoft.com/downloads/search.aspx?displaylang=zh-cn&amp;categoryid=5" ADD_DATE="1059272335" LAST_VISIT="1066637968" LAST_MODIFIED="1059272352">Microsoft 下载中心:Macintosh &amp; 其它平台</A>
        <A HREF="http://bbs.bird365.com/cgi-bin/topic.cgi?forum=2&amp;topic=1456&amp;show=0" ADD_DATE="1060831422" LAST_VISIT="1066637968" LAST_MODIFIED="1060831445">影视下载 ---『 影视共享区 』 - ★★★8月14日全部测试可下电影,精彩奉献!★★★</A>
        <A HREF="http://bbs.100bao.com/dispbbs.asp?boardID=3&amp;ID=10120" ADD_DATE="1065091880" LAST_VISIT="1066637968" LAST_MODIFIED="1065091882">百宝论坛--[下载](10月1日修改)论坛ftp(我会及时换密码)</A>
        <A HREF="http://www.52z.com/soft/781.html" ADD_DATE="1064297938" LAST_VISIT="1066637968" LAST_MODIFIED="1064297944">飞翔下载 = RedHat?linux?9.0?正式发布版 9.0</A>
    </DL>
    <H3 FOLDED="true" ADD_DATE="1064990996">手册</H3>
    <DL>
        <H3 FOLDED="true" ADD_DATE="1065660065">手册一</H3>
        <DL>
            <A HREF="http://art.yesky.com/" ADD_DATE="1063337628" LAST_VISIT="1066637968" LAST_MODIFIED="1063337634">天极-设计在线-美工教室</A>
        </DL>
        <A HREF="http://www.phpe.net/site_search.php?search=cache" ADD_DATE="1062146674" LAST_VISIT="1066637968" LAST_MODIFIED="1062146677">Exceed PHP - 超越PHP -- 站点搜索</A>
        <A HREF="http://www.tisin.com/school/homepage/jscript/lesson/learn3/tech/js/stmt4.htm#1016007" ADD_DATE="1062377097" LAST_VISIT="1066637968" LAST_MODIFIED="1062377101">JavaScript语言参考手册_语句</A>
        <A HREF="http://www.wy1997.com/sailflying/learn/paixu.htm" ADD_DATE="1064477075" LAST_VISIT="1066637968" LAST_MODIFIED="1064477087">XML卷之实战锦囊(1):动态排序</A>
    </DL>
    <H3 FOLDED="true" ADD_DATE="1064990951">电影</H3>
    <DL>
        <A HREF="http://movie.59178.com/show.asp?id=7972" ADD_DATE="1060932158" LAST_VISIT="1066637968" LAST_MODIFIED="1060932166">在线电影,在线影院,免费电影,电影下载--绝代双骄,主要演员-苗侨伟 梁朝伟 关礼杰 刘美娟 黎美娴,电影海报,在线收看</A>
        <A HREF="http://bbs.bird365.com/dispbbs.asp?boardID=2&amp;ID=5" ADD_DATE="1061567203" LAST_VISIT="1066637968" LAST_MODIFIED="1061602524">布谷鸟综合论坛-娱乐时代-电影时代-浏览:风.语特供下载!8.23供应!</A>
    </DL>
    <H3 FOLDED="true" ADD_DATE="1064991052">论坛</H3>
    <DL>
        <A HREF="http://expert.csdn.net/expert/forum.asp" ADD_DATE="1055987696" LAST_VISIT="1066637968" LAST_MODIFIED="1055987696">欢迎来到CSDN新版论坛</A>
    </DL>
    <H3 FOLDED="true" ADD_DATE="1055891971">链接</H3>
    <DL>
        <A HREF="http://www.microsoft.com/isapi/redir.dll?prd=ie&amp;ar=windowsmedia" ADD_DATE="1055892079" LAST_VISIT="1066637968" LAST_MODIFIED="1055892079">Windows Media</A>
        <A HREF="http://www.microsoft.com/isapi/redir.dll?prd=ie&amp;ar=windows" ADD_DATE="1055892079" LAST_VISIT="1066637968" LAST_MODIFIED="1055892079">Windows</A>
        <A HREF="http://www.microsoft.com/isapi/redir.dll?prd=ie&amp;ar=hotmail" ADD_DATE="1055892079" LAST_VISIT="1066637968" LAST_MODIFIED="1055892079">免费 Hotmail</A>
        <A HREF="http://www.microsoft.com/isapi/redir.dll?prd=ie&amp;pver=6&amp;ar=CLinks" ADD_DATE="1055892079" LAST_VISIT="1066637968" LAST_MODIFIED="1055892079">自定义链接</A>
    </DL>
    <A HREF="http://server/~yjj/forum/" ADD_DATE="1055912919" LAST_VISIT="1066635476" LAST_MODIFIED="1055912982">http--server-~yjj-forum-</A>
    <A HREF="http://www.wfinfo.net.cn/" ADD_DATE="1058889954" LAST_VISIT="1066635476" LAST_MODIFIED="1058889955">http--wf-www.sd.cninfo.net-</A>
    <A HREF="http://www.code-labs.com/article/articleinfo.php?id=59" ADD_DATE="1066635480" LAST_VISIT="1066635485" LAST_MODIFIED="1066635485">Java常见问题集锦(来自Sun中国官方站)</A>
    <A HREF="http://www.dsend.com/" ADD_DATE="1065688068" LAST_VISIT="1066635478" LAST_MODIFIED="1065688069">www.dsend.com</A>
    <A HREF="http://www.yangning.com/cgi-bin/topic.cgi?forum=1&amp;topic=70&amp;show=0" ADD_DATE="1064837339" LAST_VISIT="1066635478" LAST_MODIFIED="1064837345">『VC++编程软件工程 』 - 胡言乱语</A>
    <A HREF="http://member.netease.com/~rchan/convlite_tiandown.html" ADD_DATE="1063015294" LAST_VISIT="1066635477" LAST_MODIFIED="1063015296">内码转换大师(ConvertLite) 安装及使用教程</A>
    <A HREF="http://expert.csdn.net/Expert/topic/2258/2258214.xml?temp=.559231" ADD_DATE="1065434997" LAST_VISIT="1066635478" LAST_MODIFIED="1065435002">天生是坏种1-10(UP者杀无赦,嘎嘎)</A>
    <A HREF="http://www2.yetibb.com/sms/main.asp" ADD_DATE="1063103581" LAST_VISIT="1066635477" LAST_MODIFIED="1063103584">宝宝短信在线 - sms.yetibb.com</A>
    <A HREF="http://211.70.120.32:61/t2526/dw/19r.htm" ADD_DATE="1059268391" LAST_VISIT="1066635476" LAST_MODIFIED="1059268394">实战win2000-XP下本机调试ASP、CGI、PHP</A>
    <A HREF="http://bingle.pku.edu.cn/" ADD_DATE="1058770645" LAST_VISIT="1066635476" LAST_MODIFIED="1058770647">欢迎访问北京大学天网FTP,WWW文件搜索引擎</A>
    <A HREF="http://ayqfg.y365.com/loveexam4.htm" ADD_DATE="1061990038" LAST_VISIT="1066635477" LAST_MODIFIED="1061990042">爱情测验速算恋爱成功率</A>
    <A HREF="http://www.yesky.com/20030312/1656569.shtml" ADD_DATE="1064829888" LAST_VISIT="1066635478" LAST_MODIFIED="1064829889">用VC把TXT文件转化成HTM文件</A>
    <A HREF="http://mp3.baidu.com/wstsearch?tn=baidump3&amp;ct=134217728&amp;word=%B6%E9%C2%E4%CC%EC%CA%B9&amp;lm=-1&amp;pn=0" ADD_DATE="1059644384" LAST_VISIT="1066635476" LAST_MODIFIED="1059644385">百度MP3搜索_堕落天使</A>
    <A HREF="http://www.59178.net/" ADD_DATE="1061920135" LAST_VISIT="1066635477" LAST_MODIFIED="1061920139">精彩网站网址之家</A>
    <A HREF="http://expert.csdn.net/Expert/topic/2074/2074554.xml?temp=9.830874E-02" ADD_DATE="1059196619" LAST_VISIT="1066635476" LAST_MODIFIED="1059196822">谁能帮我写一个和自定义函数来统计注册会员总数的代码</A>
    <A HREF="http://www.ddbbs.org/dispbbs.asp?boardid=3&amp;id=924&amp;star=2#7810" ADD_DATE="1064478057" LAST_VISIT="1066635478" LAST_MODIFIED="1064478060">豆豆技术论坛--新任命三名版主#7810</A>
</DL>
</root>

解决方案 »

  1.   

    还没弄好呀?!这样做:<?php
    $s = join("",file('yjj1.htm')); // 装入文件并连接成串$s = preg_replace("/\r?\n|<p>/","",$s); // 过滤多余的标签和换行符
    $s = preg_replace("/ +</","<",$s); // 过滤多余的空格
    $data = split("<DT>",$s); // 按<DT>标记分割成数组,在此类文档中<DT>表示新行/** 递归搜索函数 **/
    function explore(&$array) {
      $ar = array();
      $i = 0;
      while(list(,$str) = each($array)) {
        preg_match("/<(A|H\d)(.*)>(.*)<\/\\1>(.*)$/",$str,$regs);
        $ar[$i] = array(tagName=>$regs[1],Text=>$regs[3],Attrs=>genAttrs($regs[2]));
        if(preg_match("|<DL>.*</DL>|",$regs[4]))
          continue;
        if(preg_match("|<DL>|",$regs[4]))
          $ar[$i][sub] = explore($array);
        if(preg_match("|</DL>|",$regs[4]))
          return $ar;
        $i++;
      }
      return $ar;
    }/** 创建属性数组函数 **/
    function genAttrs($str) {
      $str = trim($str);
      if(! empty($str)) {
        $str = preg_replace("/(\w+) /","\\1=\"\" ",$str);
        $str = preg_replace("/(\w+=)/","\\1>",$str);
        $str = preg_replace("/ +/",",",$str);
        $str = eval("return array($str);");
      }
      return $str;
    }$data = explore($data); // 开始分析
    print_r($data);
    ?>
      

  2.   

    如果仅仅是把一个文件导入到一个变量中也用不着这么复杂吧。唠叨的前四行就能做到了。
    $s = join("",file('a.htm')); // 装入文件并连接成串
    $s = preg_replace("/\r?\n|<p>/","",$s); // 过滤多余的标签和换行符
    $s = preg_replace("/ +</","<",$s); // 过滤多余的空格
    $data = split("<DT>",$s); // 按<DT>标记分割成数组,在此类文档中<DT>表示新行
    print_r($data);
      

  3.   

    ustb(偶然) :你可以把我在最上面网址上的复杂的对应的文件程序拷贝到你的机子上,看一下最终结果.我发现有的服务器竟然不支持递归调用.真让人发晕.
    xinyaoxp(henonybee):等你有时间帮忙看一下,谢谢顶.
      

  4.   

    <input type=button value=导入收藏夹
     onclick="window.external.ImportExportFavorites(true,'http://localhost');">
    <input type=button value=导出收藏夹
     onclick="window.external.ImportExportFavorites(false,'http://localhost');">
    <input type=button value=整理收藏夹
     onclick="window.external.ShowBrowserUI('OrganizeFavorites', null)">
      

  5.   

    meizz(梅花雪(新婚蜜月中)) :太谢谢了,还在打扰你.
    不过不是实现这样的功能,你可以看一下,我另一个链接的变量形式和php程序的表达方法,
    你如果对php不熟的话可以用js表达你的方法.
    目的是解析我的那个'导出的收藏夹'文档到一个变量中.我的收藏夹文档在上面已经贴出来了.
      

  6.   

    在另一页中有我写出来的能看结果的php测试文件和类,能返回正确结果,但结构不好,你可以拿去看一下,就明白了.
      

  7.   

    我认为重在问题不在分.
    xuzuning(唠叨):
    写错了,是'下载1', 国家机关的人员可不能挑字眼啊.
    谢谢,请再次完善一下你的程序.
      

  8.   

    if(preg_match("|<DL>.*</DL>|",$regs[4]))
      continue;改做if(preg_match("|<DL>.*</DL>|",$regs[4])) {
      $i++;
      continue;
    }你认真看一下程序就会发现的