Asp.net+Xmlʵݿ̳һ㼴ͨ

************************************************************
ԭ:
:2003-12-6 7:37:09
Դ:http://www.lshdic.com/bbs
:ˮƽ,©ֻ򲻶֮,ת뱣ǺϢ
************************************************************

̳صASPASPNET̳Ŀ˼·

ֿԹ˽ڣͶ½ڡ

Ŀǰ̳ʽְ汾ͨݴȡֿⶼǡݿ⡱ָǳõACCESS SQLSERVERȵʽġݿ⡱PHP ASP ASPNET JSPȵЩ̨ͨġADOSQLߣľƵһСһС飨ԱעᡢԱ½̳ĿࡢĿͳơĿ̨ľƵۻʽ̳ϵͳһġľȻչǶݿĴȡɷ޷Ǿǹľϵʲģɼõ̳򲢲дѵ˼·ʵġݿṹȻҾͽֿASPNET+XMLݿʵ̳ܽһЩ˼·һһȤԼһԣһȫµֶο̳Ȥ

һڣϻ˵

1ƪϤЩ֪ʶ˲ܶ
ٴѧϰһWEB̨վۺ֪ʶ˼ɶϤASPNET̼XMLĵṹĳԱ
2Xmlܳ䵱ݿ⡱
ܣֻǲͬĸ֯ʽ
3Xml䵱ݿ̳ĿѶǷʹACCESSSQLSERVERΪݿĿѶȸߣ
࣬Щܱˮƽ޴ֽXML䵱ݿACCESSһϵľޣ
4ΪʲôѡASPNETΪ̨XML̳
壬ASPPHPJSP̨ԾɣVBVCJAVAʽ̳
5ȣXml䵱ݿ⡱̳ϵͳкκô
XMLṹƣڴСϵͳϾ
-ٶȣļADOȡݿ⣩
-ԴռãܺͶ٣ǴֲʽСļ(ͨ1-100K)ڴCPUռõȾݿ⣩
-ֲʽһļļУ뽫ݼΪһݿ⣬ƣ
-ֲԺͨԣXMLһͨԣڲͬϵͳϾ˳ֲӦã
-޸ġҡάϵͳֱļйļǳ鷳ⷽѷݿϵͳĽԣǽԼXMLݴWEBϵͳֲⷽĲ㣩
-ȫԣǻȡڳ򡢼ܷ棬СǸĺ̨ļļеƺʹλãֻXMLļݿṹȽɢңݱװļ򵥣

ڶڣ·šأXMLݿṹ

ȷʲô̳ϵͳ˼·Ǽ迪һ̳书ܹþЧ³ֻ̳ҪһĿ
XMLݿʵ{
Աϴ洢Ŀ¼½һļΪuser.xmluser.xmlļΪ洢лԱϵļṹʽ[
<?xml version="1.0" encoding="gb2312"?>
<alluser>
  <fyw name="" pass="1234" sex="ʿ" age="20" img="http://www.lshdic.com/bbs/image/user40.jpg" fatie="20" exp="243" homepage="http://www.lshdic.com" email="lshdic@sina.com" oicq="21152530" qianming="ǩ" address="ɽ"/>
  <cike name="¶̿" pass="123" sex="ʿ" age="20" img="man2.gif" fatie="0" exp="20" homepage="" email="gdcike@163.com" oicq="" qianming="Դү˰İ" address="ɽ"/>
  <plgirl name="ǧǧ" pass="123" sex="Ůʿ" age="20" img="woman1.gif" fatie="0" exp="0" homepage="" email="" oicq="" qianming="" address=""/>
</alluser>
]
ǱõXML洢ṹѿһǩһԱϢǩǡûʺšname=ǳơpass=롢sex=Ա𡭡Сûʺš뱣֤ΨһģұΪӢĸӢĸߴ֣XMLļṹһҪXMLĵ淶淶˺ڳûύݴУɵй¶user.xml汨ϣֹҸ޷ȡ

̳ϴ洢Ŀ¼½һļУΪdatadataļн󼴱лԱӣӵļйɵ1.xml,2.xml,3.xmlЩļ洢ӵݰ⡢ظȻЩļĽ޸ġɾȶԺóʵֵģļĳ򲿷Ҫ֤ļͻɣļκιɵģϾǲļʵ䵥XMLļݽṹ£[
1.xml:
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type='text/xsl' href='../file.aspx?dex=1.xml'?>
<document>
   <record>
   <anthor>fyw</anthor>
   <title>ӱ</title>
   <date>2003-12-6 3:27:18</date>
   <gengxindate>2003-12-6 3:27:18</gengxindate>
   <body>

&lt;hr&gt;ԹHTMLXMLĵ淶ͻַԺĺϷݣҲҪ
</body>
   </record>
</document>

2.xml:
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type='text/xsl' href='../file.aspx?dex=7908604.xml'?>
<document>
  <record>
    <anthor>fyw</anthor>
    <title>ӱ</title>
    <date>2003-12-6 3:54:59</date>
    <gengxindate>2003-12-6 3:54:59</gengxindate>
    <body></body>
    <reply>
      <anthor>cike</anthor>
      <date>2003-12-6 5:53:38</date>
      <gengxindate>2003-12-6 5:53:38</gengxindate>
      <body>1¥ظ</body>
    </reply>
    <reply>
      <anthor>plgirl</anthor>
      <date>2003-12-7 5:53:38</date>
      <gengxindate>2003-12-7 5:53:38</gengxindate>
      <body>2¥ظ</body>
    </reply>
  </record>
</document>
]
Ǳ̳ӵXML洢ṹǽ˻Աϴ洢ļ(user.xml)Լ̳ӴŵصʹŽṹ(data\*.xml)Ƿó߻ʯϴǷܹʵָӵ̳ϵͳģǿ϶ģֻҪͨں̨洢أѺõĽ棬Сţ
}

ڣ󡢽ʿĥ

XMLݴ洢ṹɣһһг̳ҵҪĲ
Ŀ{
ͨúҳ
һͨúҳDLLûؼõĳ̡У˺ʹÿɴʡʱظͶһ½ἰ

οԱ
һsessionΪsession("who")ֵǷڵжϣڼжǻԱ粻ֵΪοͣǱʹcookies洢ûݣοȨȻֻӣܷظӣԱԣ

Աע
ֱҳ棬Ŀuser.xmlһµıǩڵ(ͬһµĻԱ)ҪûύݣҪõֹվύԱʺ(XMLڵͷǩ)ҪʽΪƳ﷨ҪɴֻʹӢĸXMLڵҪ<>&"'ԼسšֹĻԱʺԴuser.xmlӢķžתΪСдʽִСдûʺź룩

Ա½
ûʺһ½ťύXMLDOMuser.xmlǷƥûʺ(Ҫرעûύ,*ŵ,XMLDOMбΪͨ)user.xmlиʺţһsessionΪsession("who"),ֵΪûʺţοݼΪԱݣ

Ա޸
ֹοҳʽԱעҳıһ(ûʺ޸ĵĹ)ֻбֵԤuser.xmlƥsession("who")ûԱϢû޸Ĺ󣬵޸İťʱ̨޸user.xmlиûԱӦĽڵݼɣ

Աʾ
ֻҳ棬ȡַжӦĻԱʺţʾԱ豣ܵϢ

һ̳Ŀҳ
бURLҳҳʾdataĿ¼жӦҳϢȻļ޸ڣ¸µǿ̳ѵһĿ֮һҪʵֵԵ(1-10,30-40,100-110)ʽҳĳȡdataĿ¼еļԱ֤ʵٶȣ

ʾҳ
ʾֱXMLļhttp://xxx.xxx.xxx/xxx.xmlURLʽʣڽʹþ̬XSLXMLļĶʽԶԶģǲȡʾṹ㣬˳Ϊ(1:XMLļxml-stylesheetڵhrefָXSLļ---2:Ŀļaspx,ĿaspxиurlʲοӦXMLļ,ʽΪxsl,кܺõxslʽ,мĹؼ---3:aspxxslں̨,߶ȵܡ,XMLṹӵʾҳ)ڼмĿѶǱ̳ϵͳѵһ裬򵥵ĵطXMLDOMȡĿXMLеĽڵݣʵʾ⡢ʾߡʾݡʾлظѵ㣬ֿʱ޷ӻظķҳԼaspx˿ؼxslĵ淶໥ͻǱˮƽޣҲǱԭ3ڱʵȱݣνXMLʵݿףͨXSLʵֳԽHTMLѣ


ֹοͷĿһ++ύť԰Ŀбҳ·½һרҳûύҪserver.HTMLEncode()ûύݣó򴴽XMLļXMLļXMLļļʽڶдĸʽڵд˺ݡ޸user.xmlӦķԱĽڵʵֻ+2ͷ+1cookies7ڽֹύˮ

ظ
ֹοͻظҳɰʾҳ·½һרҵṩһ+ύťύ緢ͬҪݹˣڶӦӴ洢XMLļвһreplyڵ㣬ڸýڵнڴ洢ظơظݡظڡظڵȽڵ㣬޸user.xmlӦķԱĽڵʵֻ+1ͷ+1cookies7ڽֹύˮ


Ҫʵ֤жϽֹοͼԱʹãѡĺ̨нԱ֡ٻԱ֡ɾԱ޸κӡɾκӣԿIPöȵȸ߼ܣ
}

Ľڣɳ

ͨϸгԾԾԣʱѾ˼·ȴ֪дˣؼ룬ȽƽѧһЩáһһгʹéٿ

1:ʾҪʱʹãɵԻûѣԶ˻һҳ˺鱣ΪһͨļҪʱ<!--#include file="publicfun.aspx"-->һ¼ʹã

<script language=vb runat='server'>
sub t2(tstr2 as string)
response.write (replace("<script language=vbs> msgbox " & chr(34) & tstr2 & chr(34) & ",16," & chr(34) & "ʾ" & chr(34) & ":history.back()&lt;/script>","&lt;","<")):response.end
end sub
</script>

2:һݼ⺯޸XMLǩʱʹãһ⣬ûʺŵȻҪܵݹˣ

<script language=vb runat='server'>
sub jiancha(requeststr as string)         ''"<>&*,©벹֮
dim array1(5) as string
array1(0)="'":array1(1)=chr(34):array1(2)="<":array1(3)=">":array1(4)="&":array1(5)="*"
dim tempi as integer
for tempi=0 to ubound(array1)
if instr(requeststr,array1(tempi))<>0 then response.write (replace("<script language=vbs> msgbox " & chr(34) & "ο " & requeststr & " Ժнֹ [" & array1(tempi) & "] Զ" & chr(34) & ",16," & chr(34) & "ʾ" & chr(34) & vbcrlf & "history.back()&lt;/script>","&lt;","<")):response.end
next
end sub
</script>

3:asp.netܾվύע루ڻԱעᡢԱ޸ҳȱ϶ҳʹã

<%
if lcase(mid(request.ServerVariables("HTTP_REFERER"),8,len(request.ServerVariables("SERVER_NAME"))))<>lcase(request.ServerVariables("SERVER_NAME")) then t2("ܾվύ")
%>

4:ĿXMLļ½ڵ

<%@import namespace='system.xml'%>
<%
dim userdom1=new xmldocument,userdom2,userdom3
userdom1.load (server.mappath("user.xml"))          'װҪXMLļ
userdom2=userdom1.selectsinglenode("alluser")       'αָalluserڵ,userdom2
userdom3=userdom1.createElement("fyw")              '´һΪfywĽڵ,userdom3
userdom3.setAttribute("name","")              'Ϊuserdom3ӽڵ,Ϊname,ֵΪ
userdom3.setAttribute("pass","123")
userdom3.innerText=""                           'userdom3ڵ
userdom2.AppendChild(userdom3)                      'userdom2alluserڵuserdom3fywڵ
userdom1.save (server.mappath("user.xml"))          '䶯XMLݱ浽user.xml
%>

5:޸XMLڵ

<%@import namespace='system.xml'%>
<%
dim userdom1=new xmldocument,userdom2
userdom1.load (server.mappath("user.xml"))
userdom2=userdom1.selectsinglenode("alluser").getElementsBytagname("fyw")  'αָalluserڵµfywڵ
userdom2(0).setAttribute("name","")           '趨fywڵĵһ,nameֵ޸Ϊ
userdom2(0).innerText=""                        '趨fywڵĵһ,ݸΪ
userdom1.save (server.mappath("user.xml"))          '䶯XMLݱ浽user.xml
%>

6:жXMLڵǷ

<%@import namespace='system.xml'%>
<%
dim userdom1=new xmldocument
userdom1.load (server.mappath("user.xml"))          'װҪXMLļ
'ǱΪʲôҪáûʺšʶûΨһݵĿģҷѽ
if userdom1.selectsinglenode("alluser").getElementsBytagname("fyw").count<>0 then t2("fywڵԴ")
%>

7:XMLڵ㣨ڱдظʱõ4ᵽķһһӽڵ鷳ʱԿô˷ӣ

<%@import namespace='system.xml'%>
<%
dim filedom=new xmldocument,filedom2
filedom.load(server.mappath("data\" & request.querystring("dex")))  'request.querystring("dex")=6.xml
filedom2=filedom.createElement("reply")
'ַܷ㣬ҶXMLļĽṹŰҲܺãĿոͻسԱõXMLĵṹ
filedom2.innerXml=vbcrlf & "      <anthor>" & session("who") & "</anthor>" & vbcrlf & "      <date>" & now & "</date>" & vbcrlf & "      <gengxindate>" & now & "</gengxindate>" & vbcrlf & "      <body>" & neirong.value & "</body>" & vbcrlf & "      "
filedom.selectsinglenode("document/record").appendChild(filedom2)
filedom.save(server.mappath("data\" & request.querystring("dex")))  'request.querystring("dex")=6.xml
%>

8:ɾXMLڵ

<%@import namespace='system.xml'%>
<%
dim userdom1=new xmldocument,userdom2
userdom1.load (server.mappath("user.xml"))
userdom1.DocumentElement.RemoveChild (userdom1.selectsinglenode("alluser/fyw"))  'ɾalluserڵµfywڵ
userdom1.save (server.mappath("user.xml"))
%>

9:µXMLļԴκͺ׺ļXMLļ

<%@import namespace='system.io'%>
<%
dim newfile=new StreamWriter(server.mappath("data\" & new DirectoryInfo(server.mappath("data")).getfiles().length+1 & ".xml"),false,System.Text.Encoding.Default)
'ָĬϱ뷽ʽΪSystem.Text.encoding.default,߿ɸΪSystem.Text.encoding.GetEncoding("gb2312"),ȻUTF8XMLľ޷
newfile.write ("<?xml version=" & chr(34) & "1.0" & chr(34) & " encoding=" & chr(34) & "gb2312" & chr(34) & "?>" & _
vbcrlf & "<?xml-stylesheet type='text/xsl' href='../file.aspx?dex=" & filelength+1 & ".xml'?>" & vbcrlf & _
"<document>" & vbcrlf & "   <record>" & vbcrlf & "   <anthor>" & session("who") & "</anthor>" & vbcrlf & _
"   <title>" & server.HTMLEncode(biaoti.value) & "</title>" & vbcrlf & "   <date>" & now & "</date>" & vbcrlf & _
"   <gengxindate>" & now & "</gengxindate>" & vbcrlf & "   <body>" & server.HTMLEncode(neirong.text) & "</body>" & vbcrlf & _
"   </record>" & vbcrlf & "</document>")
newfile.close:newfile=nothing
%>

10:ɾָļ

<%@import namespace='system.io'%>
<%file.delete(server.mappath("data\2.xml"))%>

11:cookiesʵ7ڲظˮ

<%
if not request.cookies("lshdicbbs") is nothing then
if isdate(request.cookies("lshdicbbs")("guanshui"))=false then response.cookies("lshdicbbs")("guanshui")=now
if datediff("s",request.cookies("lshdicbbs")("guanshui"),now)<7 then response.write ("7ڽֹظˮ"):response.cookies("lshdicbbs")("guanshui")=now:response.end
end if
response.cookies("lshdicbbs")("guanshui")=now
%>

12:ʽûύݱΪӢĸȤǿΪ֧Ӣĸ+ֵʽ

<%
dim name1=request.form("username")
if regex.replace(name1,"[a-z]+","",RegexOptions.IgnoreCase)<>"" then t2("ʺʹA-Za-zΧӢĸ")
%>

13:չʾߣԭűɸҪ޸ģ

<div style='position:absolute;left:0;top:0;border-bottom:1 solid green;border-right:1 solid green;border-left:1 solid cccccc;border-top:1 solid cccccc;display:none;z-index:500;background-color:#FFF7FF;padding:2;white-Space:nowrap;table-Layout:fixed;' id=showdiv></div>
<script>
var oldtext="ٱ",colors1=new Array("#FFECD5","#FFF7FF","#FFFFEB","white","#F5FFEB","#EEFAFF","#FFFFEE","#EDFFFC")
function document.onmousemove(){
try{
if(event.srcElement.getAttribute('lshdic'))
{
showdiv.style.left=event.x-3;showdiv.style.top=event.y+document.body.scrollTop+18;if(event.srcElement.lshdic!=oldtext){oldtext=event.srcElement.lshdic;showdiv.innerText=oldtext;showdiv.style.backgroundColor=colors1[Math.round(Math.random()*colors1.length)]};if(showdiv.style.display=='none')showdiv.style.display=''
}else{if(showdiv.style.display=='')showdiv.style.display='none';}}catch(e){}
}
</script>
<a href="http://www.lshdic.com" lshdic='ӭվ'></a>
<a href="http://www.lshdic.com/bbs" lshdic='ӭ̳&#13;&#13;2003-12-6 10:31:32'>̳</a>

ڣڴˡ֪

4½ڵļѧϰԻ˽ų́XMLݿʵָӵ̳ϵͳͨNҲʵãȥʵܽԼľ飬½Ǹο

ʱޣֻֿܽASPNET汾XMLݿ̳ȫƣNetXmlݿ̳1.0׸λоڱ˵ASPNETռе⣬޷ṩʾֽṩȫԭأ13ԭժڱϵͳУַhttp://www.lshdic.com/download/netxmlbbs.rarغɲοļԼASPNETϲԡ