Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux编程 > » 正文

XML简单操作

来源: 未知 分享至:

uses
  XMLDoc, XMLIntf;


function TAServerTbl.Init(szSerPath: string): Boolean;
var
  pData: PServer;
  XMLServer: TXMLDocument;
  NodeList1, NodeList2: IXMLNodeList;
  Node1, Node2: IXMLNode;
  ServerUrl: TStringList;
  i, j, nLen: Integer;
  szTemp: AnsiString;
begin
  Clear;
  try
    XMLServer := TXMLDocument.Create(Application);
    if (not FileExists(szSerPath)) then begin
      ServerUrl := TStringList.Create();
      ServerUrl.LoadFromFile(szIniPath);
      //
从网上的地址载入,还可以从流中载入
      XMLServer.LoadFromFile(ServerUrl.Values[\'ServerUrl\']);
      //
保存为文件
      XMLServer.savetofile(szSerPath);
      ServerUrl.Free();
    end else begin
      //
直接从文件载入
      XMLServer.LoadFromFile(szSerPath);
    end;
    //
得到结列表
    NodeList1 := XMLServer.DocumentElement.ChildNodes;
    //
循环读每个结列表
    for i := 0 to NodeList1.Count - 1 do begin
      NodeList2 := NodeList1[i].ChildNodes;
      for j := 0 to NodeList2.Count - 1 do begin
        New(pData);
        //
每个结列表中的结
        Node2 := NodeList2[j];
        //
结列表的名字  比如  华东电信 里边还有10个结节,也就是10个服务器
        pData^.m_szName := NodeList1[i].Attributes[\'name\'];
        //
去掉-[结节的名字,也就是服务器名
        szTemp := Node2.Attributes[\'name\'];
        nLen := Pos(\'-\', szTemp);
        if (nLen > 0) then begin
          pData^.m_szSerName := Copy(szTemp, 1, (nLen - 1)*2);
        end else begin
          pData^.m_szSerName := szTemp;
        end;
        //
读各个节
        pData^.m_szIp := HostToIP(Node2.Attributes[\'ip\']);
        pData^.m_nPort := StrToInt(Node2.Attributes[\'port\']);
        pData^.m_szVer := ResolveVer(Node2.Attributes[\'version\']);
        pData^.m_bState := StrToBool(Node2.Attributes[\'state\']);
        FList.AddObject(pData^.m_szSerName, TObject(pData));
      end;
    end;
    XMLServer.Free();
    Result := True;
  except
    On e: Exception do
    begin
      Result := False;
    end;
  end;
end;

 

<?xml version=\"1.0\" encoding=\"gb2312\" ?>

<root> <group name=\"华南电信\" groupid=\"101\">   <server name=\"王者大陆-[新]\" ip=\"121.9.239.189\" port=\"9016\" version=\"3.00.105\" state=\"3\" pip=\"121.9.239.224\" pport=\"9394\" serverid=\"10109\" serverlevel=\"0\" tip=\"\" />   <server name=\"众神之域-[新]\" ip=\"121.9.239.225\" port=\"9016\" version=\"3.00.105\" state=\"1\" pip=\"121.9.239.224\" pport=\"9394\" serverid=\"10110\" serverlevel=\"0\" tip=\"\" />   <server name=\"天空之城-[新]\" ip=\"121.9.239.213\" port=\"9016\" version=\"3.00.105\" state=\"2\" pip=\"121.9.239.224\" pport=\"9394\" serverid=\"10108\"

Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史