InnoSetup 5 脚本

来源:互联网 发布:sql 连续语句 编辑:程序博客网 时间:2024/06/05 20:25

 [代码]InnoSetup 5 脚本    

01{ ================================================================
02  功能: 打开一个XML文档, 返回文档的Nodes对象
03  参数: XMLFile     文档路径, 可以是有效的URL路径
04        XMLRoot     文档的根节点对象
05  返回: 无
06}
07procedure OpenXML(XMLFile:String; varXMLRoot: Variant);
08var
09    XMLDocument: Variant;
10begin
11  try
12    XMLDocument := CreateOleObject('MSXML2.DOMDocument');
13    XMLDocument.async :=False;
14    XMLDocument.resolveExternals :=False;
15    XMLDocument.load(XMLFile);
16    XMLRoot := XMLDocument.documentElement;
17  except
18    RaiseException(ExpandConstant('{cm:LOADXMLFAILED}'));
19  end;
20end;
21 
22 
23{ ================================================================
24  功能: 在打开的XML文档中, 查找指定的节点
25  参数: XMLNode   使用OpenXML打开的XML文档的节点
26        Key       节点名字
27        AttrName  节点属性名, 可以为空
28        AttrValue 节点属性值, 可以为空
29        FoundNode 找到的节点
30  返回: 成功返回True 否则返回False
31}
32function FindXMLNodeByKey(XMLNode: Variant; KeyName:String; AttrName: String; AttrVal: String;var FoundNode: Variant) :Boolean;
33var
34  NodeIndex: Integer;
35  Node: Variant;
36begin
37  Result := False;
38  try
39    if'' = AttrName thenbegin
40      FoundNode := XMLNode.selectSingleNode(KeyName)
41      Result :=True;
42    endelse
43      forNodeIndex := 0 to XMLNode.childNodes.length()-1do begin
44        Node := XMLNode.childNodes.item(NodeIndex);
45        if(KeyName = Node.nodeName)and ( AttrVal = Node.Attributes.GetNamedItem(AttrName).value)then begin
46            FoundNode := XMLNode.childNodes.item(NodeIndex);
47            Result :=True;
48            break;
49        end;
50      end;
51  except
52    Result :=False;
53  end;
54end;
55 
56 
57{ ================================================================
58  功能: 获取子节点的值
59  参数: XMLNode   使用OpenXML打开的XML文档的节点
60        Key       节点名字
61  返回: 值, 获取失败时, 返回空
62}
63function GetXMLValue(XMLNode: Variant; KeyName:String) :String;
64begin
65  try
66    Result := XMLNode.selectSingleNode(KeyName).text;
67  except
68    RaiseException(ExpandConstant('{cm:READXMLFAILED}'));
69  end;
70end;
原创粉丝点击