+ -
当前位置:首页 → 问答吧 → 学xml的困惑

学xml的困惑

时间:2004-07-11

来源:互联网

最近初学xml语言,以前听说过它的好处,能实现数据与格式的分离,能实现客户端分页,能用dtd创建语言。用数据岛方便网络的传输等等。
可最近用它来做网站时发现,数据过多的时候,用asp生成的xml数据量大得惊人。在传输到客户端的时候非常慢。如果数据量大,然而客户根本不需要浏览所有的数据,还有必要用到xml吗?用它不是很浪费网络资源??
另外一个问题就是xml的及时性问题。当发布广告,或者是论坛的帖子的时候,用xml存储数据也不好吧。
所以我对xml在用途方面也不是想其他的人吹的那么神。也没有必要什么都用它来完成。或许我没有接触到关于 xml处理这方面的技术,所以一知半解。在此发问,请勿笑话,并希望给一个很好的解释~~谢谢

作者: 单身   发布时间: 2004-07-11

其实你不必一次传一个很大的文件,XML 支持嵌入外部 XML 文件,所以你可以将文件信息分为几部分,只将客户端需要的数据返回客户端就可以。

你在服务器端可以随时更改 XML 文件,并保存 XMLDOM 提供的方法够简单了

作者: bencalie   发布时间: 2004-07-12



QUOTE:
[i]单身[/i] 于 2004-7-11 08:45 PM 写道:
最近初学xml语言,以前听说过它的好处,能实现数据与格式的分离,能实现客户端分页,能用dtd创建语言。用数据岛方便网络的传输等等。
可最近用它来做网站时发现,数据过多的时候,用asp生成的xml数据量大得惊人。 ...

XML还有一个作用就是代替简单的数据库,并不是完全应用于web的,这个很有用,借助DOM,可以方便地代替简单文本或者数据库的读写

作者: 桃花岛主   发布时间: 2004-07-14

xml文件是要被客户端下载的,数据好像不安全吧.是不是这样哦

作者: 单身   发布时间: 2004-07-14

我是跳跃性思维,请大家见谅。

1。xml能代替html吗?
  这个问题在各论坛上均可见,甚至不只一个人这么问。
能代替吗?如果让用户将xml文件直接在浏览器打开,场面是不容想像的,我们得用到xsl,将xml转换成html是能让用户接受的事情。一个复杂的主页,如www.sina.com.cn你要将其硬改成xml和xsl,我想不仅网页编辑叫苦,还没有显示出任何的优势;另外如下列代码常常在xsl中出现:<xsl:template match=”/para”><tr><td><xsl:apply-templates/></td></tr></xsl:template>,注意其中的<tr><td>那可是html标记。
好了,xml不能代替html,他的诞生也不是为了替代html

2.Xml在web中的应用到底有多大的范围?
  我尝试了两次大规模的在项目中使用xml。
  第一次的做法是:用dom替代了recordset,翻页、查询的速度是令人想像不到的快,因为数据都在dom里,也就是说缓存在本地,对其操作速度快也很正常,问题也出在这里,超过3000条数据,(网络环境10mb局域网),客户端等待的时间已经超出指标,所以此办法只能适用于数据库记录少的情况。同样是这次,我用xmlhttp来代替post,执行数据库的添加、删除、修改功能,由于是异步的,客户端还是一个字:快。由于是明码,为了保护我的数据库字段名和表名,我专门设计一个函数来加密和解密,真是晕死。
  另外值得提出的一点是:因为有了dom,我才能用jscript实现了网页中编辑报表的功能(输入数据,实时计算如同excel,等等)

  第二次的做法是:用dom来替代recordset,不过是单条记录的,比如网站上的新闻系统,通过dom直接生成xml文件保存在服务器物理硬盘上,再通过xsl来转换,这样的做法对用模版来生成静态html的方法是高级了一点,和用服务器端脚本来动态生成页面比较呢,访问速度快多了。同样是这次,由于web服务器和db服务器的安全性考虑,我希望能从db 向 www 单向提供数据,于是仔细阅读了mssql中的xml和internet支持,由于与我的目标不符合,所以我没有继续深入。今天看到关于这个的帖子,我又去看了一遍联机帮助,还是没有找到说服我在下一个网站上部署他的理由。
上面提到的两次开发中,服务器端脚本分别是asp、jsp,客户端脚本是jscript。当然两者用到的dom可就不是一个东西了,方法、属性大部分相同。

3.xml在数据库的应用
  说到这里,就不得不说到oa,做过oa的人(非二次开发)对流程是最有体会的,程序里定义死,会产生大量的后期修改工作,当 国的做法就是换一个领导换一个工作流程,自定义流程里有用jscript做的,代码繁杂,不容易阿,更常见的是notes和exchange的工作流,这两个东西贵是出了名的,大中企业才上。Oracle9i推出的xml字段让我兴奋了几个月,因为在sql语句中可以用xpath查询阿!!!
用jscript做自定义流程的可能使用过xml,xml这种无拘无束的子节点就是非线性流程最佳体现嘛。流程作为一个xml被放入到记录中了,用sql语句很轻易查询出流程执行到哪一步,该谁做,做什么,现在做oa可真是不需要workflow了,用关系数据库就可以了。Oracle也不低廉,大家等其他关系数据库相继推出吧。

  我用vb、ado、xml来实现了不同数据库记录的迁移,说起来很简单,ado的recordset对象的save方法就生成了xml,用stream对象和recordset对象结合,可以将xml保存到数据库中,中间唯一要做的就是不同数据库数据类型的转换,这个太简单了,用recordset的save方法生成xml的时候,数据类型就包含在表所在子节点的属性中,把不同数据库分别建一个表,表中再建包含所有字段类型的字段,很容易就得到db到ado不同数据类型的对应表,db1到db2的数据类型对应表也就不难取得了。

4.xml在其他方面的应用
  我就不多说了,office2000的另存为html给我的感觉就是html内嵌xml,他给我们带来的就是在程序中生成word文档(带表格、表头)而不需要模版
还有就是通过不同的xsl-fo,我们可以把xml转换成pdf,flash等等。

作者: ahxiaxin   发布时间: 2004-07-15

全部由xml和xsl完成页面的确困难
不是每个编辑都能有hand coder的水准
所以这个成为主流还需时日

xml也不是传统意义上的数据库
但的确可以作为数据的载体
其最大的用途就是将来的无缝计算中的数据交换

作者: zdzhuo   发布时间: 2004-07-15

难道使用xml就不能提高数据到客户端的传输?

不说百万组海量数据库吧,就是10万组数据量的数据库,如果反复的提交数据库事务来查询,用asp+sqlserver的方式,在多线程操作下,肯定也不会快到哪。。。

也许xml有很多用途,但对于访问速度来说,能否有更好的办法,解决大数据量的xml数据,传输到客户端时速度慢这一瓶颈?

现在主流的查询报表技术,除了在服务器上操作,就是javascript缓存数据流,但是数据量过大也非常恼火,xml就能解决吗????

作者: nnb2000   发布时间: 2004-07-16