我也弄过一个类似的,在录入数据库的同时生成一个xml文档放在服务器上,文件名用ID表示,在数据库中只存ID,标题,作者等信息。如果是象这里这样的,因为回复是不定的(可能增加),所以有两种方法:
要不存两套,也就是说数据库中也有回复内容,在回复时重新生成新的每个主题的相应的xml文件。
要不在每次回复时,读出相应的xml文件,解析,重新加上新的回复内容,再生成新的xml文件。只有最后一种方法用到了解析xml,其它的方法都不用解析器,只要约定xml的格式即可。显示时用xsl显示即可。
要不存两套,也就是说数据库中也有回复内容,在回复时重新生成新的每个主题的相应的xml文件。
要不在每次回复时,读出相应的xml文件,解析,重新加上新的回复内容,再生成新的xml文件。只有最后一种方法用到了解析xml,其它的方法都不用解析器,只要约定xml的格式即可。显示时用xsl显示即可。
要不存两套,也就是说数据库中也有回复内容,在回复时重新生成新的每个主题的相应的xml文件。
要不在每次回复时,读出相应的xml文件,解析,重新加上新的回复内容,再生成新的xml文件。只有最后一种方法用到了解析xml,其它的方法都不用解析器,只要约定xml的格式即可。显示时用xsl显示即可。
是用微软的东西进行的转换吧?
刚才出错,我发现了这里的数据很可能存了两套。一套在数据库中,另外在回复时生成xml文件,所以它根本没用到解析器。我回个帖,在出现添加完成时刷新,这样,不会显示你新增的内容。不管刷新几次都出不来,但是如果你再回一个帖子,这下两次回复的内容都出来的:)因为当时,回复被加入数据库中但是没有即时更新xml文件,你再回复,它会在新的回复加入数据库后,重新生成xml,这样你全部的回复都出来了。
我也不知道为什么?因为不是我做的:)不过做成两套,还是有好处的。一方面可以不用自己去解析xml文件然后再加上新的内容,你想回复页是可能会新增内容的,所以肯定要修改,你想读数据库生成xml比解析xml再加上新节点再保存下来在实现上方便另一方面,安全些呀。
论坛的很多页面都是使用的xml,只不过是服务器端解析的。至于数据,数据库和xml保存了2套。
原来ghj1976是CSDN的人:)
很有前途!!!
不好意思:P
代蝈蝈回答:这里是在客户端解析的,其实解析这个XML的是你自己的IE。
"郁闷"是什么样的感觉?
描述一下?
还有,本身的xml说不定也是微软的
不是通用的。大家看xml源码了吗?
其他的都没有改变,没有看到分了好多frame吗?
不支持netscape,那么应该肯定是微软的一系列东东了!
only XML + XSL
</Reply>
Test
客户段很容易得到纯数据,不用再在HTML里提取数据,也即容易处理数据。
你也可以用它的XML加你的XSL生成你自己的叶面。
每次内容变化是asp把数据写入库,同时生成一个静态xml文件,在用那个xsl解释格式。还有好多帧,刷新好烦。
于是,同样采用xml技术,却有需求导致解决方法不一样。
为什么要采用xml? 当时认为可以利用xml保存纯数据的方式,实现方便的改版。所以开始的技术思路是数据入库(方便检索),同时通过写文本文件的方法build一个静态的xml文件。这样就达到了第一个目的。
为什么要build静态文件? 这是因为使用静态的文件可以减小数据库的压力,同时,单纯的静态文件访问(web)这一层可以通过对WebServer实现负载均衡的方式来提高整个系统的负载能力和提高单台服务器的性能和利用率(对于动态的数据访问——比如一些商务逻辑或者运算逻辑——和数据库难以实现负载均衡,系统的真正的瓶颈在这里)。所以,其实在xml流行以前,已经有很多bbs和新闻发布系统采用发布静态文件的方式供用户访问。bbs如最早的火鸟,后来流行过的韩国的一个bbs等等。用静态文件对于用户来说,还有一个很大的好处:cache 。所以,是否是静态文件和使用xml没有关系。
对于第一个目的来说,采用了xml之后,还存在矛盾。第一,如果把数据build成xml放在服务器端,而让用户的浏览器配合制定的xsl去解释成html(xhtml),最大的问题是很多用户的浏览器不支持——这个问题只能靠时间解决;第二,如果在服务器端build的时候,将xml解释成html,最后保存html,这样就不用受用户的浏览器版本限制,可问题又来了:首先,当你需要改版的时候,更改了xsl,必须将那部分内容重新build一遍(如果不用xml实现数据与表现层分离,只能依靠自己定义的模板或者借助SSI技术,但是远远没有用xml方便)。虽然这样做是可以理解的,但是如果采用第一种思路,只需要改了xsl,用户基本就能看到最新的内容。而且,服务器端解释成html,不得不依赖一个功能和体系结构比较完整的内容管理系统来实现;其次,xml解释器的问题,当时使用微软的xml解释器,在我们的开发用机w2k(来自msdn宇宙版)的系统下运行正常,当拿到对外服务器(w2k单独买的)无论如何无法正常工作,让我们检查了很久都不行,后来换到nt的服务器上才能运行,但是还存在很多问题——也只能靠时间解决。
呵呵,时间解决了浏览器和解释器的问题之后,我们的内容管理系统也做出来了。最后,综合考虑到一个产品的市场对象和客户特点,我们的内容管理系统采用j2ee架构。但是,这并不表明只有java和xml才是亲戚,当然,也不像楼上某位朋友说的要采用.net和c#。
作为一个产品化的内容管理系统,采用j2ee主要方便各种用户群,以及用户的千奇百怪的系统结构。另外,无论是服务器端解释还是客户端解释都可以在管理系统的支持下方便的选择。
针对提问者问题总结一下:[讨论]csdn新版论坛的xml技术是如何实现的?
数据存储:用数据库保存数据,方便实现后期查询和与其他系统的挂接;
用户访问核数据存储:用xml的特性保存数据,方便实现数据与表现层和业务罗基层的分离;
用户访问:用xsl配合解释xml,在客户端端浏览器实现,方便表现层与数据分离。
技术实现:xml、xsl、DataBase、asp/aspx/jsp + 相应平台的的xml parser
样例:http://www.enews.com.cn/article/200202/20020210060465_1.xml 呵呵,看着大家好像都没得分,是不是给我来点?哈哈,我很少发言,这两天来看看发现这个expert系统很像以前我们在教育热线做的Expert专家系统,所以来玩玩。顺便,向编程同道问好!
使用xsl显示xml阿。