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">
 <servername="王者大陆-[新]" 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="" />
 <servername="众神之域-[新]" 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="" />
 <servername="天空之城-[新]" ip="121.9.239.213" port="9016" version="3.00.105" state="2" pip="121.9.239.224" pport="9394" serverid="10108" serverlevel="0" tip="" /></group>
 
<group name="华东电信" groupid="105">
 <servername="皓月峡谷-[新]" ip="61.147.90.91" port="9016" version="3.00.105" state="2" pip="61.147.90.118" pport="9394" serverid="10505" serverlevel="0" tip="" />
 <servername="极北天穹-[新]" ip="61.147.90.75" port="9016" version="3.00.105" state="1" pip="61.147.90.118" pport="9394" serverid="10504" serverlevel="0" tip="" />
 </group>
</root>

免责声明:文章转载自《XML简单操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇三个故事说穿了许多人驾校考试秘笈 不用看书就能通过!!下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

动态链接库dll,静态链接库lib, 导入库lib

转载地址:http://www.cnblogs.com/chio/archive/2008/08/05/1261296.html 目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称"静态库"),另一种为动态连接库(DLL,以下简称"动态库")的导入库(Import Libary,以下简称"导入库")。 静态库是一个或者多个...

Excel SUMPRODUCT formula Syntax, Usage, Examples and Tutorial | Chandoo.org Learn Microsoft Excel Online

Excel SUMPRODUCT formula - Syntax, Usage, Examples and Tutorial | Chandoo.org - Learn Microsoft Excel Online Today we will learn a new and exciting excel formula – the all powerfu...

3938 Portal(离线型的并查集)

/* 题意: 给出一个L 找出有多少条路径符合条件(条件为路径中路的最大值《=L) 做了这个题学到了离线这个概念 离线就是 输入完成后进行操作 在线是变输入边操作 用并查集来构图 , 每当遇到2棵树合并时, num[x]*num[y]是新的路径数 */ #include<cstdio> #include<cstring>#includ...

senior developer in Hongkong

关于孙立 | 孙立.学不可以已 MrSunLi.com 关于孙立 白日不到处,青春恰自来。苔花如米小,亦学牡丹开。 孙立,虽然已近不惑之年,却依然对世界充满好奇。 他出生在北京一个普通家庭,在北京上学、工作、成家。因为一个工作机会,搬家到上海5年。又因为另一个偶然的工作机会,搬到香港。目前一家人在香港生活。 他热爱计算机研发。14岁开始自学(当年最流行...

Fvwm 笔记

Fvwm 笔记 Fvwm 的安装和启动 透明效果的实现 截图和配置文件 http://learn.tsinghua.edu.cn:8080/2001315450/fvwm_frame.html Fvwm 的安装和启动 首先安装 fvwm2。然后将 .Xinitrc 文件中其他窗口管理器的启动命令注释掉,换成 exec fvwm2。...

tomcat发布web service教程

这几天一直在准备找工作,自学了关于web service的一些基本的内容,也遇到了不少问题。现在就把我自己学到的知识和大家分享一下,由于是初学,所以有什么错误的地方请大家帮忙指正,感激不尽~~!! 1、下载jax-ws依赖包 因tomcat没有jax-ws所需的依赖环境,所以第一步先下载Jax-ws RI,即jax-ws reference implema...