作者:趣趣虎 来源:www.ququhu.com 时间:2007-09-05
将下面的四个文件存在同一级目录下,再在同目录下建立一个文件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源代码进行语法规范化,结束】''''''''''''''''''''''''
处理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源代码进行语法规范化,结束】''''''''''''''''''''''''
文章关键字:代码 工具 转换 源代码 规范化 标签 处理 属性 tmpattri
上一篇:仅用xsl和asp实现分页功能 下一篇:根据各元素的值显示不同颜色
165 * 70 广告位招租
联系QQ:349881211
联系QQ:349881211
165 * 60 广告位招租
联系QQ:349881211
联系QQ:349881211
网友发表评论:
热点文章
·在关系数据库中存储XML数据
·基于XML的三层C/S模型
·XML Schema教程
·XML 如何推动下一代信息共享应用程序
·TrackBack 技术规范
·论Asp与XML的关系
·XMLDOM手册
·XML入门问答
·用XML和XSL来生成动态页面
·用XSLT把XML的数据输入数据库
·XSL-FO 学习笔记
·建立MSXML 测试环境
·基于XML的三层C/S模型
·XML Schema教程
·XML 如何推动下一代信息共享应用程序
·TrackBack 技术规范
·论Asp与XML的关系
·XMLDOM手册
·XML入门问答
·用XML和XSL来生成动态页面
·用XSLT把XML的数据输入数据库
·XSL-FO 学习笔记
·建立MSXML 测试环境
相关文章
·仅用xsl和asp实现分页功能
·根据各元素的值显示不同颜色
·XML加ASP实现网页“本地化”
·URL 或 XML 文档中的特殊字符
·建立MSXML 测试环境
·XML语法概述
·XSL-FO 学习笔记
·调用xsl来解析xml文档(js异步)
·用XSLT把XML的数据输入数据库
·使用AJAX技术构建更优秀的Web应用程序
·用XML和XSL来生成动态页面
·用DOM/JDOM解析XML文件(3)
·根据各元素的值显示不同颜色
·XML加ASP实现网页“本地化”
·URL 或 XML 文档中的特殊字符
·建立MSXML 测试环境
·XML语法概述
·XSL-FO 学习笔记
·调用xsl来解析xml文档(js异步)
·用XSLT把XML的数据输入数据库
·使用AJAX技术构建更优秀的Web应用程序
·用XML和XSL来生成动态页面
·用DOM/JDOM解析XML文件(3)
相关连接
相关连接
图片连接


