Paul's profilepaulPhotosBlogLists Tools Help

Blog


    November 21

    如何设计一个成功的网站七

    3、在明确自己的网站印象后,开始努力建立和加强这种印象

      经过第二步印象的"量化"后,你需要进一步找出其中最有特色特点的东西,就是最能体现网站风格的东西。并以它作为网站的特色加以重点强化,宣传。以下做法可作参考:

      (1)将你的标志logo,尽可能的出现在每个页面上。或者页眉,或者页脚,或则背景。
      (2)突出你的标准色彩。文字的链接色彩,图片的主色彩,背景色,边框等色彩尽量使用与标准色彩一致的色彩。
      (3)突出你的标准字体。在关键的标题,菜单,图片里使用统一的标准字体。
      (4)想一条朗朗上口宣传标语。把它做在你的banner里,或者放在醒目的位置,告诉大家你的网站的特色是...。
      (5)使用统一的语气和人称。即使是多个人合作维护,也要让读者觉得是同一个人写的。
      (6)使用统一的图片处理效果。比如,阴影效果的方向,厚度,模糊度都必须一样。
      (7)创造一个你的站点特有的符号或图标。
      (8)用自己设计的花边,线条,点。
      (9)展示你网站的荣誉和成功作品。
      (10)告诉网友关于你的真实的故事和想法。
    风格的形成不是一次定位的,你可以在实践中不断强化,调整,修饰。

      七、 总结:

      网站设计充满无穷魅力,仅靠一篇文章无法穷尽其中的奥秘。这条设计思路不一定完全适合于每个设计者,也不可能完全适合于各种设计的实际情况,全当抛砖引玉。仁者见仁,智者见智,希望更多优秀的网站出自于你我的手。文章中错误之处,望批评指正。

    如何设计一个成功的网站六

    六、 设计网站的整体风格

      风格(style)是抽象的,是指站点的整体形象给浏览者的综合感受。这个"整体形象"包括站点的CI(标志,色彩,字体,标语),版面布局,浏览方式,交互性,文字,语气,内容价值,存在意义,站点荣誉等等诸多因素。举个例子:我们觉得网易是平易近人的,迪斯尼是生动活泼的,IBM是专业严肃的,这些都是网站给人们留下的不同感受。

      风格是独特的,是站点不同与其他网站的地方。或者色彩,或者技术,或者是交互方式,能让浏览者明确分辨出这是你的网站独有的。例如新世纪网络的黑白色,网易壁纸站的特有框架,即使你只看到其中一页,也可以分辨出是哪个网站的。

      风格是有人性的。通过网站的外表,内容,文字,交流可以概括出一个站点的个性,情绪。是温文儒雅,是执著热情,是活泼易变,是放任不羁。像诗词中的"豪放派"和"婉约派",你可以用人的性格来比喻站点。
    如何树立网站风格呢?我们可以分这样几个步骤:

      1、确信风格是建立在有价值内容之上
      一个网站有风格而没有内容,就好比绣花枕头一包草,好比一个性格傲慢但却目不识丁的人。你首先必须保证内容的质量和价值性,这是最基本的。

      2、你需要彻底搞清楚自己希望站点给人的印象是什么

      可以从这几方面来理清思路:
      a.如果只用一句话来描述你的站点,应该是:()
       参考答案:有创意,专业,有(技术)实力,有美感,有冲击力

      b.想到你的站点,可以联想到的色彩是:()
       参考答案:热情的红色,幻想的天蓝色,聪明的金黄色

      c.想到你的站点,可以联想到的画面是:()
       参考答案:一份早报,一辆法拉利跑车,人群拥挤的广场,杂货店

      d.如果网站是一个人,他拥有的个性是:()
       参考答案:思想成熟的中年人,狂野奔放的牛仔,自信憨厚的创业者

      e.作为站长,你希望给人的印象是:()
       参考答案:敬业,认真投入,有深度,负责,纯真,直爽,淑女

      f.用一种动物来比喻,你的网站最像:()
       参考答案:猫(神秘高贵),鹰(目光锐利),兔子(聪明敏感),狮子(自信威信)

      g.浏览者觉得你和其他网站的不同是:()
       参考答案:可以信赖,信息最快,交流方便,

      h.浏览者和你交流合作的感受是:()
       参考答案:师生,同事,朋友,长幼。

      你可以自己先填写一份答案,然后让其他网友填写。比较后的结果会告诉你:你网站现在的差距,弱点及需要改进的地方。

    如何设计一个成功的网站五

    五、 确定网站的链接结构

      网站的链接结构是指页面之间相互链接的拓扑结构。它建立在目录结构基础之上,但可以跨越目录。建立网站的链接结构有两种基本方式:

      1、树状链接结构

      类似DOS的目录结构,首页链接指向一级页面,一级页面链接指向二级页面。这样的链接结构浏览时,一级级进入,一级级退出。优点是条理清晰,访问者明确知道自己在什么位置,不会"迷"路。缺点是浏览效率低,一个栏目下的子页面到另一个栏目下的子页面,必须绕经首页。

      2、星状链接结构

      类似网络服务器的链接,每个页面相互之间都建立有链接。这种链接结构的优点是浏览方便,随时可以到达自己喜欢的页面。缺点是链接太多,容易使浏览者迷路,搞不清自己在什么位置,看了多少内容。

      这两种基本结构都只是理想方式,在实际的网站设计中,总是将这两种结构混合起来使用,达到比较理想的效果。比较好的方案是:首页和一级页面之间用星状链接结构,一级和以下各级页面之间用树状链接结构。

    如何设计一个成功的网站四

    四、 确定网站的目录结构

      网站的目录是指你建立网站时创建的目录。例如:在用frontpage98建立网站时都默认建立了根目录和images(存放图片)子目录。目录结构的好坏,对浏览者来说并没有什么太大的感觉,但是对于站点本身的上传维护,内容未来的扩充和移植有着重要的影响。下面是建立目录结构的一些建议:

      1、不要将所有文件都存放在根目录下,会造成文件管理混乱
      你常常搞不清哪些文件需要编辑和更新,哪些无用的文件可以删除,哪些是相关联的文件,影响工作效率。另外,上传速度慢。服务器一般都会为根目录建立一个文件索引。当您将所有文件都放在根目录下,那么即使你只上传更新一个文件,服务器也需要将所有文件再检索一遍,建立新的索引文件。很明显,文件量越大,等待的时间也将越长。所以,尽可能减少根目录的文件存放数。

      2、按栏目内容建立子目录
      子目录的建立,首先按主菜单栏目建立。例如: 企业站点可以按公司简介,产品介绍,价格,在线定单,反馈联系等建立相应目录。其他的次要栏目,类似what's new,友情连接内容较多,需要经常更新的可以建立独立的子目录。而一些相关性强,不需要经常更新的栏目,例如:关于本站,关于站长,站点经历等可以合并放在一个统一目录下。所有程序一般都存放在特定目录。例如:CGI程序放在cgi-bin目录。所有需要下载的内容也最好放在一个目录下。

      3、在每个主栏目目录下都建立独立的images目录
      为每个主栏目建立一个独立的images目录是最方便管理的。而根目录下的images目录只是用来放首页和一些次要栏目的图片。

      4、目录的层次不要太深
      目录的层次建议不要超过3层,维护管理方便。

      5、不要使用中文目录

      6、不要使用过长的目录

    如何设计一个成功的网站三

    三、 确定网站的栏目

      建立一个网站好比写一篇文章,首先要拟好提纲,文章才能主题明确,层次清晰。如果网站结构不清晰,目录庞杂,内容东一块西一块。结果不但浏览者看得糊涂,自己扩充和维护网站也相当困难。网站的题材确定后,并且收集和组织了许多相关的资料内容,但如何组织内容才能吸引网友们来浏览网站呢?栏目的实质是一个网站的大纲索引,索引应该将网站的主体明确显示出来。一般的网站栏目安排要注意以下几方面:

      1、要紧扣主题
      将你的主题按一定的方法分类并将它们作为网站的主栏目。主题栏目个数在总栏目中要占绝对优势,这样的网站显的专业,主题突出,容易给人留下深刻印象。

      2、设立最近更新或网站指南栏目
      设立 "最近更新"的栏目,是为了照顾常来的访客,让你的主页更有人性化。如果主页内容庞大,层次较多,而又没有站内的搜索引擎,设置"本站指南"栏目,可以帮助初访者快速找到他们想要的内容。

      3、设立可以双向交流的栏目
      比如论坛,留言本,邮件列表等,可以让浏览者留下他们的信息。

      4、设立下载或常见问题回答栏目
      网络的特点是信息共享。如在你主页上设置一个资料下载栏目,便于访问者下载所需资料。另外,如果站点经常收到网友关于某方面的问题来信,最好设立一个常见问题回答的栏目,既方便了网友,也可以节约自己更多时间。

    如何设计一个成功的网站二

    二、 定位网站的CI形象

      所谓CI(corporate identity),意思是通过视觉来统一企业的形象。一个杰出的网站,和实体公司一样,需要整体的形象包装和设计。准确的,有创意的CI 设计,对网站的宣传推广有事半功倍的效果。具体的做法是:

      1、设计网站的标志(logo)
      就如同商标一样,标志是你站点特色和内涵的集中体现,看见标志就让大家联想起你的站点。标志的设计创意来自你网站的名称和内容:

      (1) 网站有代表性的人物、动物、花草等,可以用它们作为设计的蓝本,加以卡通化和艺术化,例如迪斯尼的米老鼠,搜狐的卡通狐狸等等。
      (2) 网站有专业性的,可以以本专业有代表的物品作为标志。比如中国银行的铜板标志,奔驰汽车的方向盘标志等等。
      (3) 最常用和最简单的方式是用自己网站的英文名称作标志。采用不同的字体, 字母的变形,字母的组合可以很容易制作好自己的标志。

      2、设计网站的标准色彩
      网站给人的第一印象来自视觉冲击,确定网站的标准色彩是相当重要的一步。不同的色彩搭配产生不同的效果,并可能影响到访问者的情绪。举个实际的例子就明白了:IBM的深蓝色,肯得基的红色条型,windows视窗标志上的红蓝黄绿色块,都使我们觉得很贴切,很和谐。"标准色彩"是指能体现网站形象和延伸内涵的色彩。一般来说,一个网站的标准色彩不超过3种,太多则让人眼花缭乱。标准色彩要用于网站的标志,标题,主菜单和主色块。给人以整体统一的感觉。至于其它色彩也可以使用,只是作为点缀和衬托,绝不能喧宾夺主。适合于网页标准色的颜色有:蓝色,黄/橙色,黑/灰/白色三大系列色,要注意色彩的合理搭配。

      3、设计网站的标准字体
      和标准色彩一样,标准字体是指用于标志,标题,主菜单的特有字体。一般我们网页默认的字体是宋体。为了体现站点的"与众不同"和特有风格,我们可以根据需要选择一些特别字体。例如,为了体现专业可以使用粗仿宋体,体现设计精美可以用广告体,体现亲切随意可以用手写体等等。

      4、设计网站的宣传标语
      也可以说是网站的精神,网站的目标。用一句话甚至一个词来高度概括。类似实际生活中的广告金句。例如:鹊巢的"味道好极了";麦斯威尔的"好东西和好朋友一起分享";Intel的"给你一颗奔腾的心"等等。

    如何设计一个成功的网站一

    随着网络技术的不断发展,网络应用已经渗透到人类社会的各个角落。作为网络世界的支撑点的网站,更是人们关注的热点:政府利用网站宣传自己的施政纲领,日益成为与百姓交流的直通车;企业利用网站宣传自己的形象,挖掘无限商机;个人利用网站展示个性风采,创建彼此沟通的桥梁。越来越多的人希望拥有网站,开辟网络世界里的一片天地。如何设计一个出色的网站呢?关于这个问题,人们讨论的很多,可以讨论的内容也很多,加之网络技术的飞速发展,很难提出一个绝对权威和正确的设计思路,笔者不才,根据自己的设计体会,总结出以下基本设计思路:

      一、 定位网站的主题和名称

      网站的主题也就是网站的题材,网站设计开始首先遇到的问题。网站题材千奇百怪,琳琅满目,只要想的到,就可以把它制作出来。下面是美国《个人电脑》杂志(PC Magazine)评出的99年度排名前100位的全美知名网站的十类题材:

      第1类:网上求职
      第2类:网上聊天/即时信息/ ICQ
      第3类:网上社区/讨论 / 邮件列表
      第4类:计算机技术
      第5类:网页/ 网站开发
      第6类:娱乐网站
      第7类:旅行
      第8类:参考 /资讯
      第9类:家庭/教育
      第10类:生活/时尚

      每个大类都可以继续细分,比如娱乐类再分为体育 /电影/ 音乐等小类,音乐又可以按格式分为MP3,VQF,Ra等,按表现形式分古典,现代,摇滚等。同时,各个题材相联系和交叉结合可以产生新得题材,例如旅游论坛(旅游+讨论),经典入球播放(足球+影视)按这样分下去,题材可以有成千上万种。这么多题材,如何选择呢?遵循的原则如下:

      1、主题要小而精
      定位要小,内容要精。如果你想制作一个包罗万象的站点,把所有你认为精彩的东西都放在上面,那么往往会事与愿违,给人的感觉是没有主题,没有特色,样样有,却样样都很肤浅,因为你不可能有那么多的精力去维护它。网站的最大特点就是新和快,目前最热门的个人主页都是天天更新甚至几小时更新一次。最新的调查结果也显示,网络上的"主题站"比"万全站"更受人们喜爱,就好比专卖店和百货商店,如果我需要买某一方面的东西,肯定会选择专买店。

      2、题材最好是你自己擅长或者喜爱的内容
      比如:你擅长编程,就可以建立一个编程爱好者网站;对足球感兴趣,可以报道最新的战况,球星动态等。这样在制作时,才不会觉得无聊或者力不从心。兴趣是制作网站的动力,没有热情,很难设计制作出优秀的网站。

      3、题材不要太滥或者目标太高。
      "太滥"是指到处可见,人人都有的题材;比如软件下载,免费信息。"目标太高"是指在这一题材上已经有非常优秀,知名度很高的站点,你要超过它是很困难的。

      如果题材已经确定以后,就可以围绕题材给网站起一个名字。网站名称,也是网站设计的一部分,而且是很关键的一个要素。你来看,"电脑学习室"和"电脑之家"显然是后者简练;"迷笛乐园"和"MIDI乐园"显然是后者明晰;"儿童天地"和"中国幼儿园"显然是后者大气。我们都知道PIII的中文名称"奔腾",如果改为"奔跑",可能就没有今天这么"火"了。和现实生活中一样,网站名称是否正气,响亮,易记,对网站的形象和宣传推广也有很大影响。我的建议是:

      1、名称要正
      其实就是要合法,和理,和情。不能用反动的,色情的,迷信的,危害社会安全的名词语句。

      2、名称要易记
      最好用中文名称,不要使用英文或者中英文混合型名称。另外,网站名称的字数应该控制在六个字(最好四个字)以内,四个字的也可以用成语。字数少还有个好处,适合于其他站点的链接排版。

      3、名称要有特色
      名称平实就可以接受,如果能体现一定的内涵,给浏览者更多的视觉冲击和空间想象力,则为上品。例如:音乐前卫,网页陶吧,e书时空等。在体现出网站主题的同时,能点出特色之处。

    August 15

    好多事情烦啊..

    唉..最近真的好多事情烦..
    总觉得事情没有做完..
     
    August 01

    常用CSS缩写语法总结

    使用缩写可以帮助减少你CSS文件的大小,更加容易阅读。css缩写的主要规则如下:

    颜色

    16进制的色彩值,如果每两位的值相同,可以缩写一半,例如:
    #000000可以缩写为#000;#336699可以缩写为#369;

    盒尺寸

    通常有下面四种书写方法:

    • property:value1; 表示所有边都是一个值value1;
    • property:value1 value2; 表示top和bottom的值是value1,right和left的值是value2
    • property:value1 value2 value3; 表示top的值是value1,right和left的值是value2,bottom的值是value3
    • property:value1 value2 value3 value4; 四个值依次表示top,right,bottom,left

    方便的记忆方法是顺时针,上右下左。具体应用在margin和padding的例子如下:
    margin:1em 0 2em 0.5em;

    边框(border)

    边框的属性如下:

    • border-width:1px;
    • border-style:solid;
    • border-color:#000;

    可以缩写为一句:border:1px solid #000;

    语法是border:width style color;

    背景(Backgrounds)

    背景的属性如下:

    • background-color:#f00;
    • background-image:url(background.gif);
    • background-repeat:no-repeat;
    • background-attachment:fixed;
    • background-position:0 0;

    可以缩写为一句:background:#f00 url(background.gif) no-repeat fixed 0 0;

    语法是background:color image repeat attachment position;

    你可以省略其中一个或多个属性值,如果省略,该属性值将用浏览器默认值,默认值为:

    • color: transparent
    • image: none
    • repeat: repeat
    • attachment: scroll
    • position: 0% 0%

    字体(fonts)

    字体的属性如下:

    • font-style:italic;
    • font-variant:small-caps;
    • font-weight:bold;
    • font-size:1em;
    • line-height:140%;
    • font-family:"Lucida Grande",sans-serif;

    可以缩写为一句:font:italic small-caps bold 1em/140% "Lucida Grande",sans-serif;

    注意,如果你缩写字体定义,至少要定义font-size和font-family两个值。

    列表(lists)

    取消默认的圆点和序号可以这样写list-style:none;,

    list的属性如下:

    • list-style-type:square;
    • list-style-position:inside;
    • list-style-image:url(image.gif);

    可以缩写为一句:list-style:square inside url(image.gif);

    CSS 的 Alpha 滤镜

    “Alpha”属性是把一个目标元素与背景混合。设计者可以指定数值来控制混合的程度。这种“与背景混合”通俗地说就是一个元素的透明度。通过指定坐标,可以指定各种不同范围的透明度。

    Alpha 滤镜语法 {FILTER:ALPHA(opacity=opacity, finishopacity=finishopacity, style=style, startx=startx, starty=starty, finishx=finishx, finishy=finishy)}

    参数含义分别如下:

    opacity 透明度。默认的范围是从0到100,他们其实是百分比的形式。也就是说,0代表完全透明,100代表完全不透明。

    finishopacity 是一个可选参数,如果想要设置渐变的透明效果,就可以使用他们来指定结束时的透明度。范围也是0到100。

    style 指定透明区域的形状特征:
    0代表统一形状
    1代表线形
    2代表放射状
    3代表矩形

    startx 渐变透明效果开始处的X坐标。

    starty 渐变透明效果开始处的Y坐标。

    finishx 渐变透明效果结束处的X坐标。

    finishy 渐变透明效果结束处的Y坐标。
    July 21

    Response 对象之AddHeader方法

    AddHeader

    AddHeader 方法用指定的值添加 HTML 标题。该方法常常向响应添加新的 HTTP 标题。它并不替代现有的同名标题。一旦标题被添加,将不能删除。

    此方法仅供高级用户使用。若其他 Response 方法提供了您所需的功能,建议您使用该方法。

    语法

    Response.AddHeader name, value
     

    参数

    name
    新的标题变量的名称。
    value
    存储在新的标题变量中的初始值。

    注释

    为避免命名不明确,name 中不能包含任何下划线字符 (_)。ServerVariables 集合将标题中的下划线字符解释为反斜杠。例如,下面的脚本使服务器查找一个名为 MY-HEADER 的标题名。

    <% Request.ServerVariables("HTTP_MY_HEADER") %>

    由于 HTTP 协议要求所有的标题都必须在内容之前发送,所以您必须在任何的输出(例如由 HTML 或 Write 方法生成的输出)发送到客户端之前在脚本中调用 AddHeader。但当 Buffer 属性被设置为 TRUE 时例外。若输出被缓冲,那么您就可以在脚本中的任何地方调用 AddHeader 方法,只要它在 Flush 之前执行即可。否则,对 AddHeader 的调用将产生一个运行错误。

    下面的两个 .asp 文件对这一点进行了解释。

    -------file1.asp---------
    <% Response.AddHeader "WARNING", "Error Message Text" %> 
    <HTML>
    Some text on the Web page.
    </HTML>
     

    在前面的例子中,页没有缓冲。但是,因为在服务器将输出

    Some text on the Web page
     

    发送到客户端之前调用了 AddHeader 方法,所以脚本能正常工作。如果调换一下顺序,则对 AddHeader 方法的调用将产生一个运行时错误。

    ------file2.asp----------
    <% Response.Buffer = TRUE %> 
    <HTML>
    Here's some text on your Web page.
    <% Response.AddHeader "WARNING", "Error Message Text" %> Here's some more interesting and illuminating text.
    <% Response.Flush %> 
    <%= Response.Write("some string") %> 
    </HTML>
     

    在前面的示例中,页被缓冲了,其结果是,直到此页上所有的 ASP 脚本执行后或 Flush 方法被调用后,服务器才会将输出发送到客户端。带缓冲的输出中对 AddHeader 的调用可在脚本的任何地方出现,只要在 Flush 调用之前即可。在前面的示例中,若对 AddHeader 的调用在对 Flush 的调用之后出现,脚本将产生一个运行时错误。

    您可以通过这一方法用不同的值发送同一标题的多份拷贝,比如用 WWW-Authenticate 标题。

    示例

    下面这个示例使用 AddHeader 方法要求客户端使用 BASIC 验证。

    <% Response.Addheader "WWW-Authenticate", "BASIC" %>
    
    July 09

    用ASP+XML打造留言本

     一、读者指引

      读者指引帮助你掌握本文的梗概。以免你看了大半才明白这编文章不适合你,给你造成视觉污染。

      如果你正在用ASP+XML写一些程序,或者你正在学XML那就值得一看。

      阅读本文须具备的知识,对ASP有基本的了解,对XML和DOM有基本了解,如果你不了解那么你通过学习本文基本上能够撑握ASP+XML和DOM的应用,并能根据本文范写出自已更高级的ASP+XML程序。

      二、基本思想

      本文思想是基于用ASP和DOM来读取和存储XML数据,并利用XML数据来存储留言信息,达到同用数据库存储数据的功能。

      三、XML留言本的优势

      或许你会问用ASP+TXT文本也可以达到不用数据库实上留言的功能,不错确实能够做到,而且网上也有很多这样的留言本免费下载,但这里我要讲一下ASP+XML的优越性。

      1、XML+ASP比ASP+TXT速度要快。可能你也发现当TXT文件很少时速度出奇的快,但是随着留言信息的增加TXT文本变大,速度却又是出奇的慢这就是ASP+TXT的弱点。当然我不能说ASP+XML就一定是出奇的快,但是比起ASP+TXT来说是快了许多,当然随着留言信息的增加XML文本增大速度也下降很快,但是比起TXT来说就还是好了许多(这一点可以从WAS测试证明读者可以自行测试),当然ASP+XML比不上数据库,因为数据库对查询做了特别的优化,而XML只是纯文本,在ASP建立对像是要把XML数据全部读入内存中,如果数据量大的话可想而知速度会慢下来。那你也许会问那我什么时候用关系数据库存储数据,又什么时候用XML存储数据呢?我这里也顺便提一下,就是当数据比较复杂无规率时用XML数据比较合适,还有就是你打算这些数据要在不同的操作系统上读取运用时那就是XML大显身手的时候了。如果你是普通的数据那么不到关键时刻或不支持数据库的空间时还是不要用XML文件来存储数据为好。
      2、XML数据的易读取性,TXT文本是比较难操作的,我们必须一行一行的读取判断,而且很多功能无法实上,只能编制比较简单的留言本,而XML数据则不同了,利用DOM可以轻易的访问每一个节点,而不是TXT那些烦人的Readline() Witeline()了,我们可以随意的加入删除更新某一个我们感兴趣的节点,利用ASP或者JS或者数据岛都可以轻松实上这一点,当然我这里为发考虑兼容性,用了ASP来读取XML数据,而没有用数据岛来读取节点数据(因为只有IE5以上版本才支持数据岛技术)而用ASP来实上就不存在这些问了因为客户得到的是HTML文件。

      3、XML数据夸操作系统性,只要我们把这些数据存储为XML那么这些数据就能被应何基它语言或系统所识别,而不用做应何改动。TXT显然不具备这些性能。例如我们在网上的留言信息可以直接被被转换成wap格式在手机上显示。

      四、建立存储留言信息的XML文件(List.xml)
      我们这里不打算使用DTD,因为我们这是我们自已编制并测试通过的XML数据,所以不需要DTD来验证(如果你对此感兴趣当然可以加一个这不影响程序的运行)。现在我们来看看建立一个留言本的基本要素

      0、留言ID号--定义为<id>

      1、用户名我们--定义为<username>

      2、来自那里们--定义为<fromwhere>

      3、留言时间定--义为<Posttime>

      4、用户主页定--义为<homepage>

      5、用户的信箱--定义为<email>

      6、留言内容定--义为<text>

      当然以上不是必须的读者可以自行命名并加减相关标签,把它们组合起来就得到List.xml的文件了

    <?xml version="1.0" encoding="gb2312"?>
    <site>
       <NewList>
          <list>
            <id>1</id>
            <username>Paul</username>
            <fromwhere>中国广州</fromwhere>
            <Posttime>01-4-23 18:26:56</Posttime>
            <homepage>http://www.myPage.com</homepage>
            <email>123458745@qq.com</email>
            <text>这是我的第一个XML文件</text>
          </list>
       </NewList>
    </site>


      注意:必须加上encoding="gb2312"否则会报错为非法字符,因为XML默认不支持中文。<site>为根节点<NewList><ist>等为子节点。对这个文件的意思我就不多说了大家也应该看的明白了。接下来就是我们如何来显示它了。

    五、建立显示XML数据的ASP文件(index.asp)

      这个文件要实现的功能就是读取并显示XML数据,首先创建一个XML对像然后把XML读入内存中,利用DOM分离出我们所要的数据。

    <%
    strSourceFile = Server.MapPath("/") & "\List.xml"
    '获取XML文件的路径这里根据你的虚拟目录不同而不同
    Set objXML = Server.CreateObject("Microsoft.FreeThreadedXMLDOM")
    '以自由线程创建一个XML对像
    objXML.load(strSourceFile)'把XML文件读入内存
    Set objRootsite = objXML.documentElement.selectSingleNode("NewList")
    '选取NewList节点
    %>
    <html>
    <head>
    <title>留言本</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <style type="text/css">
    <!--
    td { font-family: "宋体"; font-size: 9pt; text-decoration: none}
    a { font-family: "宋体"; font-size: 9pt; color: #0066CC; text-decoration: none}
    a:hover { color: #FF6600; text-decoration: underline}
    -->
    </style>
    </head><body bgcolor="#0099CC" text="#000000">
    <table width="80%" border="0" cellspacing="1" cellpadding="4" align="center" bgcolor="#CCCCCC">
    <tr bgcolor="#000000">
    <td colspan="2"><font color="#FFFFFF">留言溥 <a href="PostNew.asp"><font color=#FFFFFF>写新留言</font></a></font></td>
    </tr>
    <%
    PageSize =10'假设每页显示10条留言
    AllNodesNum =objRootsite.childNodes.length-1
    '获取子节点数据(因为是从节点数从0开始的所最大子节点数要减1)
    PageNum=AllNodesNum\PageSize+1'算出总页数
    PageNo=request.querystring("PageNo")
    if PageNo="" then'如果是每一次获得页面则定位到每一页显示最新的留言
    PageNo=PageNum
    end if
    StarNodes=PageNo*PageSize-1'获得起始节点
    EndNodes=(PageNo-1)*PageSize'获得结束节点
    if EndNodes<0 then
    EndNodes=0
    end if
    if StarNodes>AllNodesNum then'判断起始节点数是否超过总的节点数
    EndNodes=EndNodes-(StarNodes-AllNodesNum)
    '如果超过则结束节点要减去(StarNodes-AllNodesNum)的差值否则下标会超界出错
    StarNodes=AllNodesNum
    end if
    if EndNodes<0 then
    EndNodes=0
    end if
    while StarNodes>=EndNodes
    '从结束节点到超始节点之间读取节点数据
    username = objRootsite.childNodes.item(StarNodes).childNodes.item(1).text
    '获得用户名
    fromwhere = objRootsite.childNodes.item(StarNodes).childNodes.item(2).text
    '获得用户来自那里
    Posttime = objRootsite.childNodes.item(StarNodes).childNodes.item(3).text
    '获得留言时间
    homepage = objRootsite.childNodes.item(StarNodes).childNodes.item(4).text
    '获得用户主页

     

    email = objRootsite.childNodes.item(StarNodes).childNodes.item(5).text
    '获得用户Eamil
    text = objRootsite.childNodes.item(StarNodes).childNodes.item(6).text
    '获昨留言内容

    '*****************************************************************************
    '这里使作了XML的DOM来读取数据,显然objRootsite对像所对应的节点为<NewList>
    ' objRootsite.childNodes.item(StarNodes)所对应的节点就是<list>节点因为不至一个<list>节点所以用了item()来识别当前节点数据,随着StarNodes的递减<list>节点根着往上移一个个读取<list>节点数据。
    'objRootsite.childNodes.item(StarNodes).childNodes.item(1).text所对应的节点为具体的每个节点的文本值,这里(1)所对应的就是username用户名(因为<list>节点的子节点才是我们真正所要的)
    '******************************************************************************

    text = replace(text,chr(13),"<br>")
    '替代回车
    text = replace(text,chr(32)," ")
    '替代空格
    %>
    <tr bgcolor="#F0F0F0">
    <td width="21%" height="94" valign="top">姓 名:<%=username%><br>
    来 自:<%=fromwhere%><br>
    </td>
    <td width="79%" height="94" valign="top"> | <a href="<%=homepage%>" target=_blank title="<%=username%>的主页">主页</a>
    | | <a href="mailto:<%=email%>" title="给<%=username%>写信">信箱</a> | |<font color="#CC6633">
    留言时间:<%=Posttime%> </font>|
    <hr>
    <%=text%> </td>
    </tr>
    <tr bgcolor="#FFFFFF" align="right">
    <td colspan="2"> </td>
    </tr>
    <%
    StarNodes=StarNodes-1
    wend
    set objXML=nothing
    %>
    <tr bgcolor="#FFFFFF" align="right">
    <td colspan="2"> 共有<<%=PageNum%>>页
    <%
    if cint(PageNo)<>PageNum then'分页
    response.write "<a href='index.asp?PageNo="&(PageNo+1)&"'>上一页</a>"
    end if
    if cint(PageNo)<>1 then
    response.write "<a href='index.asp?PageNo="&(PageNo-1)&"'>下一页</a> "
    end if
    %>
    </td>
    </tr>
    </table>
    </body>
    </html>

     

      六、建立写新留言程序(PostNew.asp)

      这个文件要实现的功能就是写入新的XML节点,首先创建一个XML对像然后把XML读入内存中,利用appendChild()方法加入我们生成的XML节点。

    <%
    username=request.form("username")
    if username<>"" then
    fromwhere =request.form("fromwhere")
    homepage =request.form("homepage")
    email =request.form("email")
    text =request.form("text")
    text =replace(text,"<","<")
    Posttime =now()
    strSourceFile = Server.MapPath("/") & "\List.xml"

    '获取XML文件的路径这里根据你的虚拟目录不同而不同
    Set objXML = Server.CreateObject("Microsoft.XMLDOM")
    '创建XML对像
    objXML.load(strSourceFile)
    '把XML文件读入内存中
    Set objRootlist = objXML.documentElement.selectSingleNode("NewList")
    '选取<NewList>节点
    if objRootlist.hasChildNodes then
    '判断<NewList>是否有子节点(因为如果是每一次<NewList>是没有子节点的,
    ’ 如果不加判断在第一次运得时就会报错
    id = objRootlist.lastchild.firstchild.text+1
    '这里获得将要插入子节点的ID号,其ID号为<NewList>的最后一个子节点(lastchild)的第一个子节点(firstchild)的ID号加1(这里我们按照关系型数据库的ID号来递增)
    else
    '如是没有字子节点则是第一次留言ID号设为1
    id=1
    end if
    brstr=chr(13)&chr(10)&chr(9)
    '为了插入XML文件中的节点换行空格排列整齐
    ’(当然你也可以不用这样只是为了XML数据好看而以)
    XMLnode=brstr&"<list>"&brstr & _
    "<id>"&id&"</id>"&brstr & _
    "<username>"&username&"</username>"&brstr & _
    "<fromwhere>"&fromwhere&"</fromwhere>"&brstr & _
    "<Posttime>"&Posttime&"</Posttime>"&brstr & _
    "<homepage>"&homepage&"</homepage>"&brstr & _
    "<email>"&email&"</email>"&brstr & _
    "<text>"&text&"</text>"&brstr & _
    "</list>"&chr(13)
    '根据得到的数据建立XML片段
    set objXML2=Server.CreateObject("Microsoft.XMLDOM")
    '建立一个新XML对像
    objXML2.loadXML(XMLnode)
    '把XML版片段读入内存中
    set rootNewNode=objXML2.documentElement
    '获得objXML2的根节点
    objRootlist.appendChild(rootNewNode)
    '把XML片段插入到List.xml中
    objXML.save(strSourceFile)
    '存储lsit.xml文件(因为不存储List.xml只在内存中更新了)
    set objXML=nothing
    set objXML2=nothing
    response.write "谢谢您的留言"
    response.end

    end if
    %>
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <style type="text/css">
    <!--
    td { font-size: 9pt}
    -->
    </style>
    </head>
    <body bgcolor="#0099CC" text="#000000">
    <table width="80%" border="0" cellspacing="1" cellpadding="4" align="center" bgcolor="#FFFFFF">
    <form action="PostNew.asp" method="post" name="form1">
    <tr bgcolor="#000000">
    <td colspan="2"><font color="#FFFFFF">新留言</font></td>
    </tr>
    <tr bgcolor="#EFEFEF">
    <td width="19%" align="right">姓 名:</td>
    <td width="81%">
    <input type="text" name="username">
    ** </td>
    </tr>
    <tr bgcolor="#EFEFEF">
    <td width="19%" align="right">来 自:</td>

    <td width="81%">
    <input type="text" name="fromwhere" value="中国">
    </td>
    </tr>
    <tr bgcolor="#EFEFEF">
    <td width="19%" align="right">主 页:</td>
    <td width="81%">
    <input type="text" name="homepage" value="http://">
    </td>
    </tr>
    <tr bgcolor="#EFEFEF">
    <td width="19%" align="right">Email:</td>
    <td width="81%">
    <input type="text" name="email">
    </td>
    </tr>
    <tr bgcolor="#EFEFEF">
    <td width="19%" align="right" valign="top">内 容:</td>
    <td width="81%">
    <textarea name="text" cols="60" rows="10"></textarea>
    </td>
    </tr>
    <tr bgcolor="#EFEFEF">
    <td width="19%" align="right"> </td>
    <td width="81%">
    <input type="submit" name="Submit" value="提交">
    <input type="reset" name="Submit2" value="重填">
    </td>
    </tr>
    </form>
    </table>
    </body>
    </html>