我想在程序中使用XML来进行一些配置工作!
因此我用TXMLDocument这个类来进行XML的读取工作!
但是我创建这个类后,系统缺给我报告以下的错误!
---------------------------
Debugger Exception Notification
---------------------------
Project MDIAPP.exe raised exception class DOMException with message 'Microsoft MSXML is not installed'. Process stopped. Use Step or Run to continue.我查看了网上相关资料,但是都是将TXMLDocument这个控件拖到窗体上来完成的操作,但是在我的程序中,我没有窗体,我是在一个单元中使用TXMLDocument。
当然,在窗体上我的确试过这个TXMLDocument是可以使用的,问题就在于当我在单元中它却不能好好工作!
代码片段如下:xmlConfig:=TXMLDocument.Create(nil);
  xmlConfig.DOMVendor :=GetDOMVendor('MSXML');
  xmlConfig.LoadFromFile(UTF8Decode(fileName));《〈〈----此句报错!烦请哪位高人解救!

解决方案 »

  1.   

    只要包含xmldom, XMLIntf, msxmldom, XMLDoc这些单元,就与在有窗体的情况一样了
      

  2.   

    YAMABACK老兄,我的确已经包含了呀!但是不能如您所愿。
      

  3.   

    老大,你动态生在了TXMLDocument没有?如果没有,在调用之前要成一下。
    procedure DynamicCreateTXMLDocument;
    begin
        XMLDocument := TXMLDocument.Create(Application);
        XMLDocument.Active := false;
        XMLDocument.FileName := '';
    end;
      

  4.   

    vuen老大:
    xmlConfig:=TXMLDocument.Create(nil);〈〈〈〈----不知道这算还是不算动态生成?
      xmlConfig.DOMVendor :=GetDOMVendor('MSXML');
      xmlConfig.LoadFromFile(UTF8Decode(fileName));《〈〈----此句报错!
      

  5.   

    晕,发错了。不好意思,如果你用的是Delphi6或Delphi7,可以用XML Date binding,Delphi会针对XML文件格式生成类,然后操作类就可以了。没必要用MSXML。
      

  6.   

    vuen老大:
    可否发一两句关于你所说的代码样例让小弟一看?
      

  7.   

    呵呵对了,我使用的是DELPHI 6
      

  8.   

    用Data binding绑定XML文件:
    File->New->Other,New页的最后一个:XML Data binding,按下来不用我说你也会,生成类。我这边有一段代码给你看一下,很简单的:
    var
        XMLSM: IXMLShortMessageType;
        XMLSMR: IXMLSMRecordType;
    begin
        XMLDocument.FileName := RecordFolder + filePhone + '.xml';
        try
            XMLSM := GetShortMessage(XMLDocument);  //GetShortMessage这个函数是由Delphi生成的
            XMLSMR := XMLSM.Add;
            XMLSMR.Time := time;
            XMLSMR.Name := name;
            XMLSMR.Phone := sendPhone;
            XMLSMR.Note := note;
            XMLDocument.SaveToFile;
        except
            result := false;
            Exit;
        end;
      

  9.   

    vuen老大:
     我尝试了一下,的确是可以,但是这样不会失去很多灵活性吗?如果我要增加一个属性,或者我改变了某个元素,怎么办啊?赐教!
      

  10.   

    用XML做程序的配置文件,首先你当然要设计好XML文件的格式。如果你改变文件格式(如增加属性、元素),只需重新生成一下类就行了,没什么不方便的啊!换句话说,即使你用MSXML,如果你增加了一个属性,不是也一样要去修改Delphi源代码!
      

  11.   

    呵呵但是也是哈!主要是还没有搞懂为什么在FORM里面可以,在一个纯的单元中就不可以了呢?真是麻烦啊!贴到这个地方虽然问题没有完全解决,但是各位老大真的很热心呢!先散点分吧,留点待解决再散哈!
    在此谢过!
      

  12.   

    虽然不能帮你解决问题,但我只是想跟你说一下Delphi操作XML其实有更方便快捷的方法,我以前做的项目都是用XML做配置文件,用XML Data binding操作XML。
      

  13.   

    呵呵谢谢 vuen 老大哈!
    主要是我在别的语言中使用DOM这种标准的东西使用习惯了,所以使用这种DELPHI中特有的东西觉得不是很适应,呵呵
    谢谢您的热心哈!交个朋友先!
      

  14.   

    这样啊,以前我用Java操作XML也有用过Castor和JDom,感觉还是Delphi的XML Data binding方便呵呵~~~