虽然看了不少介绍XML的书,但在使用delphi的过程的确没有发现使用XML的优势,请有这方面经验的朋友解答一下我的疑惑。
1.xml作软件或数据库配置文件,一般的使用INI绝对能够解决,而且速度很快,除非碰到那种超大型的软件,才可能使用XML更有优势,所以我的理解是,XML做配置文件并不比INI有优势。
2.xml做轻量数据库,XML虽然有做数据库的功能,但就实际效率来说,远远不能与传统关系型数据库的效率相比,而且似乎使用XML做数据库的地方,都可以用关系数据库代替。
3.XML做界面与数据分离,还需要配合XSL来制作,就实际使用来看,效果并不明显。
4.XML做为各组件的数据交换,大部分这种应用,可能存在于中间件,就我使用delphi的经验来说,制作中间件的时候并不多,似乎这个功能在与delphi的配合上并不能发挥
就我现在发现的优势就仅仅在于,多语言支持的配置文件。所以,小弟我不明白XML在与delphi的配合应用中,还有哪方面是较有优势的,请各位赐教,谢谢

解决方案 »

  1.   

    非常同意楼主的观点。XML还是一个初级产品,初衷是为了取代HTML,实现界面和内容的分离,成为Internet的标准标记语言,现在看来,似乎还很遥远。
      

  2.   

    这是一个标准化的东西大家都使用XML  数据交换  就容易了难道你把一个页面保存成INI文件给人阅读?
    单从这方面来讲,XML 就比INI好
      

  3.   

    这是牛马不相及的问题怎么可能混为一谈?XML相对INI来讲,对于一些复杂性的配置,描述性会相对清晰很多,并且不容易被修改错误。比如:
    [code=INIFile]
    [Main]
    Users=UserList
    Files=FileList
    ...[UserList]
    User0=User0
    User1=User1[User0]
    Name=张三
    Age=90
    ...
    [/code]
    这样一个配置文件,本来想要描述的是一个Main入口(UserList的命名可能会有所不同,所以不方便直接读取UserList,而需要从入口读取),读取到Users,再根据Users的取值,得到用户的列表,但是由于用户还有相关性的描述性信息,所以还得增加一专项用于描述用户的信息,如此一来,结构就相当复杂,甚至可以说压根儿就没有结构性可言。而一些描述性的信息,我们也只能通过注解代码进行描述,而注解代码是不被解释的,这样就不利用应用程序去处理。
    下面来看XML:<?xml Version="1.0" encoding="utf-8">
    <Main Description="配置内容入口">
      <Users Description="用户信息" Activate="UserList" re="Activate为当前活动的用户列表">
        <UserList Description="用户列表">
          <User0 Name="张三" Age="90" ... \>
          <User1 Name=... \>
          ....
        </UserList>
        <UserList0 Description="临时用户列表">
          ...
        </UserList0>
        ...
      </Users>
    </Main>
    如此的结构,更加具有层次性直观性,特别是对于配置文件这东西,在很多的时候除非的特别的配置工具,都可能要手工进行或多或少的修改,上例当中的Users,不需要另外做太多的注解,用户就可以从re当中明白可以通过Activate的选择而改变活动用户列表。另外就是在文件交换过程当中,这个XML文件被读入内存之后再写出来,所有的描述信息都不会丢失,但是INI就没有任何有效的机制来进行保障。
      

  4.   

    楼上 你说的这问题很明白了可能 我描述得不够详细? 什么叫牛马不相及?难道我页面上的数据保存成XML格式的不比保存成INI的好?
      

  5.   

    谁会把页面上的数据保存为ini?有多少人会考虑去把页面上的数据保存为ini格式?楼主要的是XML做配置文件与INI做配置文件,以及XML做数据库及传统的关系型数据库,这个将页面上的数据保存为INI不觉得有点牵强?
      

  6.   

    就你列出来的那四条就足够xml牛过其他文件系统了.
    标准才是王道
      

  7.   

    1)你无法用ini来做一个嵌套复杂的配置文件,比如csdn左边的目录树
    2)你都说了轻量了,干嘛还非要和关系数据库去做比较。另外xml文件可以很好的和sqlserver交互3)可以展示xml不只有xslt,最简单的,比如xml数据导,直接可以绑定到html元素中去
    4)你没有听说过webservice吗?
      

  8.   

    INI实现其嵌套将是一种痛苦的工作,而XML则相对容易的多了。
    INI一般只是用于保存一些比较简单的数据,比如在一些软件配置方面
    而XML除了配置外,其存储数据也比INI好的多。
      

  9.   

    建议还是先学习一下XML,固步自封是不行的
      

  10.   

    来至百度百科:XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。-------照楼主这样说HTML也没有什么优势,反正我项目里用不到的都是没有优势的!那这世界上没有优势的东西就太多了楼上已经有很多人发表意见。不多说了,偶只为蹭分而来分挺多,蹭点先。。
      

  11.   

    好像和webservice进行数据交换时用的比较多
      

  12.   

    谢谢大家的回复,我是因为在实际工作用XML用得不多,看了一点书,但发现其优点在实践中并没有产生,所以产生了疑问,并是指责XML不好,只是一些疑问而已,我也不是一定很看重效率,最终还是要好用总结了一下大家所说到的优点主要是以下几方面:
    1.对于嵌套的配置来说,XML在数据结构和组织上很有优势。
    2.XML做为一种标准化,前景相当看好,以后可以方便于交换数据和统一平台,就像HTML一样。还有一点,webservice我听过,但实际工作中并没有用过,所谓的服务调用方式和现在采用的接口调用方式并没有太大的区别,这个似乎是为可以很方面的统一各平台的相互功能调用。这是我的一家言,请问是否正确,我特别想知道各位在自己的写程序过程的,都将XML用到哪些方面了?另为感谢大家的发言,再追加100分
      

  13.   

    不好意思,现在的CSDN好像是由于换成灰色图片的缘故,无法加分,明天补上,一定
      

  14.   

    >>这是我的一家言,请问是否正确,我特别想知道各位在自己的写程序过程的,都将XML用到哪些方面了? 配置文件
    程序菜单的资源文件
    smartclient与web交互的数据格式
    webservcie
    地图服务器发布的wfs图层数据服务
    一家广告公司为我们提供的web数据接口。
    ADO.net
    对象持久化
    sqlserver数据仓库的架构和查询结果..xml无所不在
      

  15.   

    以前的公司就用xml保存数据结构用来创建数据库,以及数据的导入导出,
    现在的公司也将一些例如excel,PDF等文件转化成xml导入数据库。