当前位置:中国站长下载文章中心网页编程ASP编程 → 将html源代码规范化,转换成XSL代码的asp工具

将html源代码规范化,转换成XSL代码的asp工具

减小字体 增大字体 作者:不详  来源:不详  发布时间:2006-8-13 0:36:53
     将下面的四个文件存在同一级目录下,再在同目录下建立一个文件txt.txt。当要处理html代码时,先将源代码拷入txt.txt,再进入index_transform.asp
  即可看到处理完的代码。
  
  写这个东西的本意是因为:经常要对美工用切图软件生成的网页文件转换成xsl,很头疼要花大量的时间去改写不规范的html代码。
  这个东西对全文所有的html代码进行改动:
  1.把所有标记都变成小写;
  2.把标签的属性值都加上双引号;
  3.把单端标签<hr>、<img……>、<input……>等,改成<hr/>……;
  4.把单独属性selected变成:selected="selected";
  
  功能不完善之处:对html代码中,属性值内包含空格的情况不能正常处理;
  对<script>、<style>标签里的不能正常处理。
  因为是以空格为标志将标签里的各个属性值split成的数组,所以对属性值中
  包含空格的还没做进一步处理。
  
  OK,耽误大家时间了,看看这个东西能派上用场吗?
  圣诞快乐~! :)
  
  ==================================================
  ==================================================
  '文件1:transform.asp◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎
  <%
  '*****************************************
  'Author:小乙
  '时间:2000.12.20
  '功能:初步完成对要被转换成XSL文件的:普通html代码语法规范化的功能
  '运行环境:可运行asp的机子。在同级目录下把要处理的html代码copy到
  'txt.txt文件里。
  '***************************************
  '================================================================================================
  ''''''''''''''''''''''''''''''''【对全文所有html源代码进行语法规范化】''''''''''''''''''''''''''''
  '在这个函数里,调用了另外一个主要函数alone_tag,来处理从中摘出来的单个标签。
  Function transform(txt)
  dim alltmp '定义此字符串变量,随着被处理的大字符串减少而减短——只保留未处理的字符串部分。
  alltmp=txt
  alltmp=replace(alltmp," "," ") 'nbsp_tmp是替换掉文本中的字符实体&#nbsp;
  '□■■■■■——进入全文的处理htm源代码的大处理循环——■■■■■□
  do while trim(alltmp)<>""
  'msgbox alltmp
  index=0
  index=InStr(1,alltmp,"<",1)
  
  '根据index的值,判断"<"前面是否有文本?有:加到txt1;无:进行标签处理(index=1)——即进入标签处理分支
  if index=1 then
  index_right=InStr(1,alltmp,">",1)
  tag=left(alltmp,index_right) '取出alltmp临时串中">"前面的字符串
   '对到这里的标签,判断如果标签不是后端标签,就调用处理标签大函数alone_tag
   if mid(tag,2,1)<>"/" then
   tag1=alone_tag(tag)
   'tag1=tag+",,,,,"
   txt1=txt1+tag1
   del_tag=len(tag)
   else '否则对其它标签,就转为小写后,简单的加在txt1后面
   txt1=txt1+LCase(tag)
   del_tag=len(tag)
   end if
  else
   if index>1 then
   str_tmp=left(alltmp,index-1)
   txt1=txt1+str_tmp 'index<>1,说明前面有文本。
   del_tag=len(left(alltmp,index-1)) '把"<"前面的属于文本的添加到新txt1大字符串中去。
   end if
   if index=0 then '当再也找不到<时(到了末尾),把剩下的字符串全部加到txt1里,结束循环。
   txt1=txt1+alltmp
   del_tag=len(alltmp)
   end if
  end if
  
  '把处理完的部分从原字符串中减掉
  'response.write "alltmp="+alltmp
  
  alltmp=right(alltmp,len(alltmp)-del_tag) '(如果标签长大于等于2个字符)这里有问题!12.14,下次再作!!
  
  loop
  ''□■■■■■——离开全文的处理htm源代码的大处理循环——■■■■■□
  
  'transform=txt1
  txt1=replace(txt1," ="""" "," ") '【这句是对付=""漏网之鱼 2000.12.15
  txt1=replace(txt1," >",">") '【这句是对付 > 2000.12.19
  txt1=replace(txt1,"<tbody>","") '【这句是对付<tbody> 2000.12.19
  transform=replace(txt1,"</tbody>","") '【这句是对付</tbody> 2000.12.19
  
  End Function
  ''''''''''''''''''''''''''''''''【对全文所有html源代码进行语法规范化,结束】''''''''''''''''''''''''
  %>
  
  ==================================================
  ==================================================
  '文件2:index_transform.asp◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎
  <%@ Language="VBScript" %>
  <!-- #include file="transform.asp" -->
  <!-- #include file="alone_tag.asp" -->
  <%
  
  '-------------------------------------本部分得到全文源代码,开始------------------------------------
  dim txt '源文件中的文本
  dim txt1 '经过html语法规范化后的文件字符串。
  dim tmpreadline '=thisfile.readline
  txt="":txt1="":tmpReadAll=""
  '取得源文件名称,及所在路径-------------
  sourcefile="txt.txt"
  sourcefile=Request.form("txtname")
  
  
  '--------------------------新增部分,获得上传文本文件的内容------------2000.12.15
  'txt=request.form("filecontent")
  'if len(txt)<>"" then
  'response.write "---------------"
  'end if
  'response.end
  '--------------------------新增部分结束------------2000.12.15
  
  '-----------------------------------------------------【正式开始操作文件】----------------------
  whichfile=server.mappath("txt.txt")
  'whichfile=server.mappath(sourcefile)
  Set fs = CreateObject("Scripting.FileSystemObject")
  Set thisfile = fs.OpenTextFile(whichfile, 1, False)
  counter=0
  
   tmpReadAll=thisfile.readall 'ReadAll是读取全部文件内容。
   txt=tmpReadAll
   txt1=transform(cstr(tmpReadAll))
   txt=server.htmlencode(txt)+" 【文件内容到此结束】"
  
  
  '''''''''''''''''''''''''''''''''''''''''''''''''''''''
  
   '如果要看打印出来长字符串的效果,请取消上面这行注释。
  '-------------------------------------本部分得到全文源代码,结束------------------------------------
  %>
  
  <%''''''''''''''''''''''''''''''【这里正式html页面开始】'''''''''''''''''''''''''''''

[1] [2] [3]  下一页