相关疑难解决方法(0)

XML:未安装MSXML

使用此代码获取站点的rss.此代码适用于我的计算机和许多其他计算机.但在某些计算机(Windows XP或7)中,我收到此错误:MSXML未安装

我该如何解决这个问题?怎么了?

这是代码:

procedure My_Thread.Execute;
var
  http                 : tidhttp;
  strm                 : tmemorystream;
  str,sTitle,  sDec ,er : string;
  StartItemNode        : IXMLNode;
  ANode                : IXMLNode;
  XMLDoc               : IXMLDocument;

begin
  http := tidhttp.Create();
  strm := tmemorystream.Create;
    try
      http.Get('http://www.sample.com/rss.xml',strm);     //Download the RSS file
      SetString(str,PANSIChar(strm.Memory),strm.Size);

      XMLDoc :=  LoadXMLData(str);

      StartItemNode := XMLDoc.DocumentElement.ChildNodes.First.ChildNodes.FindNode('item');
      ANode         := StartItemNode;

      i := 0;
      repeat
        inc(i);
        sTitle    := ANode.ChildNodes['title'].Text;
        sDec       := ANode.ChildNodes['description'].Text;
        Synchronize(procedure begin            //Synchronize? I'm using threads
          case I of
            1: begin
                 main_frm.edit1.text := sTitle; //main_frm is my form …
Run Code Online (Sandbox Code Playgroud)

xml delphi xml-parsing

9
推荐指数
1
解决办法
1万
查看次数

在Delphi线程中使用CoInitialize

我在Delphi程序的线程内使用TIdHttp和TXMLDocument。现在我想知道:

  1. 这些类是否使用COM对象,所以我需要在此线程中调用CoInitialize和CoUninitialize?
  2. 如果是,我是否必须在execute方法的主体或使用TIdHttp或TXMLDocument类的所有方法上使用这些函数?

delphi com multithreading

2
推荐指数
1
解决办法
1374
查看次数

标签 统计

delphi ×2

com ×1

multithreading ×1

xml ×1

xml-parsing ×1