WEB开发网
开发学院WEB开发ASP 将html源代码规范化,转换成XSL代码的asp工具 阅读

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

 2001-01-16 10:14:19 来源:WEB开发网   
核心提示:将下面的四个文件存在同一级目录下,再在同目录下建立一个文件txt.txt,将html源代码规范化,转换成XSL代码的asp工具,当要处理html代码时,先将源代码拷入txt.txt,txt=tmpReadAlltxt1=transform(cstr(tmpReadAll))txt=server.htmlencode(t
将下面的四个文件存在同一级目录下,再在同目录下建立一个文件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页面开始】'''''''''''''''''''''''''''''''''''''''''%>

<html>
<head>
<title>倒数第二版</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#BFA49a">
<form method="post" action="index_transform.asp" name="form1">
 <table border="1" cellspacing="0" cellpadding="5" align="center" bgcolor="#99CCCC" bordercolor="#330066">
  <tr>
   <td>
    <input type="text" name="txtname" value="txt.txt">
    
    <input type="file" name="filecontent">
    
    <input type="submit" name="Submit" value="提交">
    <a href="#pagedown">到下面</a>
   </td>
  </tr>
 </table>
</form> <br>
<!-------------------页面表单2开始(form2)--------------------->
<form method="post" action="trans2.asp" name="form2" enctype="multipart/form-data">
 <table width="753" border="1" cellspacing="0" cellpadding="5" align="center" bgcolor="#99CCCC" bordercolor="#330066">
  <tr bgcolor="#98AFE7" bordercolor="#FFCC99">
   <td bordercolor="#FFFFFF">原文:</td>
   <td bordercolor="#FFFFFF">处理后:</td>
  </tr>
  <tr>
   <td>
    <textarea name="txt" cols="50" rows="25" onFocus="this.select()" onclick="this.focus()">
<%=txt%>
</textarea>
   </td>
   <td>
    <%''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''%>
    <textarea name="txt" cols="50" rows="25" onFocus="this.select()" onclick="this.focus()">
<%=txt1%>
</textarea>
   </td>
  </tr>
 </table>
 <div id="Layer1" style="position:absolute; width:68px; height:35px; z-index:1; left: 349px; top: 411px; background-color: #E7E7E9; layer-background-color: #E7E7E9; border: 1px none #000000">
  <div align="center">
   <input type="submit" name="Submit2" value="提交">
   <INPUT TYPE=button NAME="view" VALUE="看源码"
%>

Tags:html 源代码 规范化

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接