<textarea id=reg rows=40 cols=80></textarea>
<script   language=Javascript>
str="<DT>   <H3 FOLDED ADD_DATE=\"1207060082\">1   </H3>   <DL>               <DT>   <H3 FOLDED ADD_DATE=\"1207060098\">11   </H3>              <DL>                   <DT>   <A HREF=\"http://localhost/Person_Links.htm\" ADD_DATE=\"1207060117\" LAST_VISIT=\"1207238400\" LAST_MODIFIED=\"1207060118\">2fads1   </A>              </DL>  <DT>   <H3 FOLDED ADD_DATE=\"1207060082\">2  </H3>   <DL>               <DT>   <H3 FOLDED ADD_DATE=\"1207060098\">12   </H3>              <DL>                   <DT>   <A HREF=\"http://localhost/Person_Links.htm\" ADD_DATE=\"1207060117\" LAST_VISIT=\"1207238400\" LAST_MODIFIED=\"1207060118\">2fads1   </A>              </DL>"
//str="<dt>1<dl><dt>1<dl><dt>2<dl>a</dl><dt>11<dl><dt>12<dl>a</dl>"
re = /.*?((<DT>.*?<DL>.*?)*?)(<DT>.*?<DL>.*?<\/DL>).*?/ig
str=str.replace(/(<DT>.*?<DL>.*?<\/DL>)/ig,function($0,$1) { return $1.replace(/(<DT>.*?<DL>.*?)*(<DT>.*?<DL>.*?<\/DL>)/ig,"$2")+"\r\n\r\n";})reg.value=str+"\r\n\r\n childs\r\n"arr1=str.match(re)reg.value=reg.value+arr1.join("\r\n\r\n");
</script>
这样已经可以了。然后你自己根据你的环境改一下代码。

解决方案 »

  1.   

    呵呵  对  但是  同时 要把他上一级的  <DT>  <H3 FOLDED ADD_DATE="1207060082">afasd  </H3> 内容截取出来
    这个是标题
    麻烦到下面这个贴看看
    这个里面应该说的比较详细http://topic.csdn.net/u/20080405/10/9f62812e-9147-418d-befb-215010e2e56c.html 
      

  2.   

    看了好久了,不过楼主举的那个例子,怎么看都没看通啊,是不是DL少了结束符
    <DL>  <p>  
          <DT>  <H3 FOLDED ADD_DATE="1206972646">链接  </H3>  
          <DL>  <p>  
          </DL>  <p>  
          <DT>  <H3 FOLDED ADD_DATE="1207060082">1级目录  </H3>  
          <DL>  <p>  
              <DT>  <H3 FOLDED ADD_DATE="1207060098">2级目录  </H3>  
              <DL>  <p>  
                  <DT>  <A HREF="http://localhost/Person_Links.htm" ADD_DATE="1207060117" LAST_VISIT="1207324800" LAST_MODIFIED="1207060118">2级文件  </A>  
              </DL>  <p>  
              <DT>  <A HREF="http://localhost/Person_Links.htm" ADD_DATE="1207060091" LAST_VISIT="1207324800" LAST_MODIFIED="1207060092">1级文件  </A>  
          </DL>  <p>  
          <DT>  <A HREF="http://localhost/Person_Links.htm" ADD_DATE="1207060073" LAST_VISIT="1207324800" LAST_MODIFIED="1207060076">根目录  </A>  
    </DL>  
    我要解析出的内容是: 
    1、 
    <DT>  <H3 FOLDED ADD_DATE="1206972646">链接  </H3>  
          <DL>  <p>  
          </DL>  
    2、 
    <DT>  <H3 FOLDED ADD_DATE="1207060098">2级目录  </H3>  
              <DL>  <p>  
                  <DT>  <A HREF="http://localhost/Person_Links.htm" ADD_DATE="1207060117" LAST_VISIT="1207324800" LAST_MODIFIED="1207060118">2级文件  </A>  
              </DL>  
    3、 
    <DL> 
          <DT>  <A HREF="http://localhost/Person_Links.htm" ADD_DATE="1207060073" LAST_VISIT="1207324800" LAST_MODIFIED="1207060076">根目录  </A>  
    </DL>  
    4、    <DT>  <H3 FOLDED ADD_DATE="1207060082">1级目录  </H3>  
          <DL> <DT>  <A HREF="http://localhost/Person_Links.htm" ADD_DATE="1207060091" LAST_VISIT="1207324800" LAST_MODIFIED="1207060092">1级文件  </A>  
          </DL> 
      

  3.   

    完整文档<!DOCTYPE NETSCAPE-Book-file-1>
    <!-- This is an automatically generated file.
    It will be read and overwritten.
    Do Not Edit! -->
    <TITLE>Books</TITLE>
    <H1>Books</H1>
    <DL><p>
        <DT><H3 FOLDED ADD_DATE="1206972646">链接</H3>
        <DL><p>
        </DL><p>
        <DT><H3 FOLDED ADD_DATE="1207060082">1级目录</H3>
        <DL><p>
            <DT><H3 FOLDED ADD_DATE="1207060098">2级目录</H3>
            <DL><p>
                <DT><H3 FOLDED ADD_DATE="1207416412">3级目录</H3>
                <DL><p>
                    <DT><A HREF="http://www.baidu.com/s?wd=www.google.com" ADD_DATE="1207416427" LAST_VISIT="1207411200" LAST_MODIFIED="1207416428">百度搜索_www.google.com</A>
                </DL><p>
                <DT><A HREF="http://localhost/Person_Links.htm" ADD_DATE="1207060117" LAST_VISIT="1207411200" LAST_MODIFIED="1207060118">2级文件</A>
            </DL><p>
            <DT><A HREF="http://localhost/Person_Links.htm" ADD_DATE="1207060091" LAST_VISIT="1207411200" LAST_MODIFIED="1207060092">1级文件</A>
        </DL><p>
        <DT><A HREF="http://localhost/Person_Links.htm" ADD_DATE="1207060073" LAST_VISIT="1207411200" LAST_MODIFIED="1207060076">根目录</A>
        <DT><A HREF="http://topic.csdn.net/t/20050103/16/3695790.html" ADD_DATE="1207331918" LAST_VISIT="1207411200" LAST_MODIFIED="1207331920">100分求解一个问题:如何用ASP实现将收藏夹里的网址列表全部在线导入到数据库里面? Web 开发 - ASP - CSDN社区 community.csdn.net</A>
    </DL><p>
      

  4.   

    文档本身就没有<DT>的结束符号<DL></DL>是嵌套的
      

  5.   

    文档主体结构应该是<DL>
    </DL>里面有嵌套了多个<DT><DL></DL>
      

  6.   

    方法虽然不是很好,但是可以提供一条思路,其实也就是找个中间变量。<textarea id="textarea1">
    <!DOCTYPE NETSCAPE-Book-file-1> 
    <!-- This is an automatically generated file. 
    It will be read and overwritten. 
    Do Not Edit! --> 
    <TITLE>Books </TITLE> 
    <H1>Books </H1> 
    <DL> <p> 
         <DT> <H3 FOLDED ADD_DATE="1206972646">链接 </H3> 
         <DL> <p> 
         </DL> <p> 
         <DT> <H3 FOLDED ADD_DATE="1207060082">1级目录 </H3> 
         <DL> <p> 
             <DT> <H3 FOLDED ADD_DATE="1207060098">2级目录 </H3> 
             <DL> <p> 
                 <DT> <H3 FOLDED ADD_DATE="1207416412">3级目录 </H3> 
                 <DL> <p> 
                     <DT> <A HREF="http://www.baidu.com/s?wd=www.google.com" ADD_DATE="1207416427" LAST_VISIT="1207411200" LAST_MODIFIED="1207416428">百度搜索_www.google.com </A> 
                 </DL> <p> 
                 <DT> <A HREF="http://localhost/Person_Links.htm" ADD_DATE="1207060117" LAST_VISIT="1207411200" LAST_MODIFIED="1207060118">2级文件 </A> 
             </DL> <p> 
             <DT> <A HREF="http://localhost/Person_Links.htm" ADD_DATE="1207060091" LAST_VISIT="1207411200" LAST_MODIFIED="1207060092">1级文件 </A> 
         </DL> <p> 
         <DT> <A HREF="http://localhost/Person_Links.htm" ADD_DATE="1207060073" LAST_VISIT="1207411200" LAST_MODIFIED="1207060076">根目录 </A> 
         <DT> <A HREF="http://topic.csdn.net/t/20050103/16/3695790.html" ADD_DATE="1207331918" LAST_VISIT="1207411200" LAST_MODIFIED="1207331920">100分求解一个问题:如何用ASP实现将收藏夹里的网址列表全部在线导入到数据库里面? Web 开发 - ASP - CSDN社区 community.csdn.net </A> 
    </DL> <p> 
    </textarea>
    <script language=javascript>
    var result=new Array();
    var tempArray=new Array();
    var index=0
    function show(str){
    //取最里面的
    re=/<DT>([\s\S](?!(<DL>)))+?[\s\S]<DL>([\s\S](?!(<DL>)))+?[\s\S]<\/DL>/g
    var temp=str.match(re)
    if(temp){
    for(var i=0;i<temp.length;i++)
    {
    result.push(temp[i])
    str=str.replace(temp[i],"###"+index+"###")
    for(var j in tempArray)
    temp[i]=temp[i].replace(j,tempArray[j])
    tempArray["###"+index+"###"]=temp[i]
    index++;
    }
    show(str)
    };
    }
    var str=document.getElementById("textarea1").value
    show(str)
    for(var i=0;i<result.length;i++)
    {
    for(var j in tempArray)
    {
    result[i]=result[i].replace(j,tempArray[j])
    }
    alert(result[i])
    }
    </script>
      

  7.   

    里面的就用 水火 的
    最外层的可以用这个:
    alert(str.replace(/([\s\S]*?)(<dl>(([\s\S]*?)(<dt>[\s\S]*?<dl>([\s\S]*)<\/dl>)([\s\S]*))<\/dl>)([\s\S]*)/ig,"$4$7"));
      

  8.   

    呵呵   myvicy   你给的串 只能匹配 第一层啊 最顶层还是不行哦
      

  9.   

    呵呵 由于 程序需要  哪位能帮忙 
    <script language=javascript>
            var result=new Array();
            var tempArray=new Array();
            var index=0
            function show(str){
                //取最里面的
                re=/<DT>([\s\S](?!(<DL>)))+?[\s\S]<DL>([\s\S](?!(<DL>)))+?[\s\S]<\/DL>/g
                var temp=str.match(re)
                if(temp){
                    for(var i=0;i<temp.length;i++)
                    {
                        result.push(temp[i])
                        str=str.replace(temp[i],"###"+index+"###")
                        for(var j in tempArray)
                        temp[i]=temp[i].replace(j,tempArray[j])
                        tempArray["###"+index+"###"]=temp[i]
                        index++;
                    }
                    show(str)
                };
            }
            var str=document.getElementById("textarea1").value
            show(str)
            for(var i=0;i<result.length;i++)
            {
                for(var j in tempArray)
                {
                    result[i]=result[i].replace(j,tempArray[j])
                }
                alert(result[i])
            }
    </script>
    把这段程序翻译成VB