求高手相助一正則表達式!!!!

EasonHoi 2004-11-10 03:10:45
在一份沒有"(雙引號或單引號)的xml文檔裡,用正則表達式為他的所有屬性加上雙引號。。
解決馬上給分!!!
...全文
142 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
EasonHoi 2004-11-10
  • 打赏
  • 举报
回复
哪裡的編碼格式啊???我的xml是用big5的,你指的是asp頁面的編碼??
stefli 2004-11-10
  • 打赏
  • 举报
回复
\s代表非打印字符,那么它的编码格式,应该和你的字符串里的编码格式一样,不然那就不能找到以空格为结尾的那些字符了.
EasonHoi 2004-11-10
  • 打赏
  • 举报
回复
好奇怪,我要先將xml裡的空格全部替換掉後才能執行到正則表達式,再替換回空格又輸出沒有引號的xml了。。。求救!!!!
stefli 2004-11-10
  • 打赏
  • 举报
回复
注释掉前面的xsl-stylesheet
"<!--<?xml-stylesheet type=text/xsl href=1.xsl ?>-->"&_

最后直接输出
Response.Write s

你就可以看到xml了
stefli 2004-11-10
  • 打赏
  • 举报
回复
这样行吗?

<%
dim s
s = "<?xml version=1.0 encoding=GB2312 ?>"&_
"<?xml-stylesheet type=text/xsl href=1.xsl ?>"&_
"<tree>"&_
" <node title=中国>"&_
" <node title=江苏>"&_
" <node title=泰州>"&_
" <node title=白马 />"&_
" </node>"&_
" <node title=徐州 />"&_
" <node title=南京 />"&_
" <node title=无锡 />"&_
" </node>"&_
" <node title=上海>"&_
" <node title=徐家汇 />"&_
" <node title=莘庄 />"&_
" <node title=中山公园 />"&_
" </node>"&_
" <node title=北京 />"&_
" <node title=四川 />"&_
" <node title=海南 />"&_
" </node>"&_
" <node title=米国>"&_
" <node title=加利福利亚 />"&_
" <node title=纽约 />"&_
" </node>"&_
" <node title=伊拉克 />"&_
"</tree>"

Set r = New RegExp
r.Global = True
r.IgnoreCase = True
r.Pattern = "=(.[^\s\?\>]*)"
s = r.Replace(s,"=""$1""")
Response.Write Server.HTMLEncode(s)
%>
EasonHoi 2004-11-10
  • 打赏
  • 举报
回复
不行。。。我是用asp。照上面的程序寫後還是有很多屬性沒有引上。。
stefli 2004-11-10
  • 打赏
  • 举报
回复
var r = /=(.[^\s\?\/]*)/gi;

->
加个>符号
var r = /=(.[^\s\?\/\>]*)/gi;

不过,还是有一点的错误,那就是那个xsl里面的text/xsl
stefli 2004-11-10
  • 打赏
  • 举报
回复
<textarea name="stefli" cols="100" rows="20">
<?xml version=1.0 encoding=GB2312 ?>
<?xml-stylesheet type=text/xsl href=1.xsl ?>
<tree>
<node title=中国>
<node title=江苏>
<node title=泰州>
<node title=白马 />
</node>
<node title=徐州 />
<node title=南京 />
<node title=无锡 />
</node>
<node title=上海>
<node title=徐家汇 />
<node title=莘庄 />
<node title=中山公园 />
</node>
<node title=北京 />
<node title=四川 />
<node title=海南 />
</node>
<node title=米国>
<node title=加利福利亚 />
<node title=纽约 />
</node>
<node title=伊拉克 />
</tree>
</textarea>
<br>
<input type="button" onClick="Translate()" value="Translate">
<script language="JScript">
function Translate() {
var s = stefli.value;
var r = /=(.[^\s\?\/]*)/gi;
alert(s.replace(r,"=\"$1\""));
}
</script>
EasonHoi 2004-11-10
  • 打赏
  • 举报
回复
這是我自己寫的,可就是替換不了那些有多屬性的標簽裡的屬性,如<a x=1 y=2>會替換成<a x='1 y=2'>,空格好像有點問題。。用了/s都沒用。。。
lsStr = replace(xmlDoc.xml,"""","")
lsStr = replace(lsStr,"'","")
set re = new RegExp
re.Global = True
re.MultiLine = True
re.pattern = "(.*?)=(.*?)(\s|[?/> ])"
lsStr = re.replace(lsStr,"$1='$2'$3")

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧