InnoSetup XML操作函数
用于InnoSetup 5 以上。对XML文件的操作,简化InnoSetup XML访问过程。
1. [代码]InnoSetup 5 脚本
{ ================================================================
功能: 打开一个XML文档, 返回文档的Nodes对象
参数: XMLFile 文档路径, 可以是有效的URL路径
XMLRoot 文档的根节点对象
返回: 无
}
procedure OpenXML(XMLFile: String; var XMLRoot: Variant);
var
XMLDocument: Variant;
begin
try
XMLDocument := CreateOleObject('MSXML2.DOMDocument');
XMLDocument.async := False;
XMLDocument.resolveExternals := False;
XMLDocument.load(XMLFile);
XMLRoot := XMLDocument.documentElement;
except
RaiseException(ExpandConstant('{cm:LOADXMLFAILED}'));
end;
end;
{ ================================================================
功能: 在打开的XML文档中, 查找指定的节点
参数: XMLNode 使用OpenXML打开的XML文档的节点
Key 节点名字
AttrName 节点属性名, 可以为空
AttrValue 节点属性值, 可以为空
FoundNode 找到的节点
返回: 成功返回True 否则返回False
}
function FindXMLNodeByKey(XMLNode: Variant; KeyName: String; AttrName: String; AttrVal: String; var FoundNode: Variant) :Boolean;
var
NodeIndex: Integer;
Node: Variant;
begin
Result := False;
try
if '' = AttrName then begin
FoundNode := XMLNode.selectSingleNode(KeyName)
Result := True;
end else
for NodeIndex := 0 to XMLNode.childNodes.length()-1 do begin
Node := XMLNode.childNodes.item(NodeIndex);
if (KeyName = Node.nodeName) and ( AttrVal = Node.Attributes.GetNamedItem(AttrName).value) then begin
FoundNode := XMLNode.childNodes.item(NodeIndex);
Result := True;
break;
end;
end;
except
Result := False;
end;
end;
{ ================================================================
功能: 获取子节点的值
参数: XMLNode 使用OpenXML打开的XML文档的节点
Key 节点名字
返回: 值, 获取失败时, 返回空
}
function GetXMLValue(XMLNode: Variant; KeyName: String) :String;
begin
try
Result := XMLNode.selectSingleNode(KeyName).text;
except
RaiseException(ExpandConstant('{cm:READXMLFAILED}'));
end;
end;
InnoSetup XML操作函数的更多相关文章
- dedecms功能性函数封装(XSS过滤、编码、浏览器XSS hack、字符操作函数)
dedecms虽然有诸多漏洞,但不可否认确实是一个很不错的内容管理系统(cms),其他也不乏很多功能实用性的函数,以下就部分列举,持续更新,不作过多说明.使用时需部分修改,你懂的 1.XSS过滤. f ...
- 【Java EE 学习 33 上】【JQuery样式操作】【JQuery中的Ajax操作】【JQuery中的XML操作】
一.JQuery中样式的操作 1.给id=mover的div采用属性增加样式.one $("#b1").click(function(){ $("#mover" ...
- Jq_文档操作方法、属性操作方法、CSS操作函数
JQuery文档操作方法 这些方法对于 XML 文档和 HTML 文档均是适用的,除了:html(). 方法 描述 addClass() ...
- c# xml操作类 比较齐全
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu ...
- 【转】python XML 操作总结(创建、保存和删除,支持utf-8和gb2312)
原文地址:http://hi.baidu.com/tbjmnvbagkfgike/item/6743ab10af43bb24f6625cc5 最近写程序需要用到xml操作,看了看python.org上 ...
- jQuery 效果函数,jquery文档操作,jQuery属性操作方法,jQuerycss操作函数,jQuery参考手册-事件,jQuery选择器
jQuery 效果函数 方法 描述 animate() 对被选元素应用“自定义”的动画 clearQueue() 对被选元素移除所有排队的函数(仍未运行的) delay() 对被选元素的所有排队函数( ...
- PHP XML操作的各种方法解析
PHP提供了一整套的读取 XML文件的方法,很容易的就可以编写基于 XML的脚本程序.本章将要介绍 PHP与 XML的操作方法,并对几个常用的 XML类库做一些简要介绍. XML是一种流行的半结构化文 ...
- C#:XML操作类
写的一个XML操作类,包括读取/插入/修改/删除. using System; using System.Data; using System.Configuration; using System. ...
- LINQ系列:LINQ to XML操作
LINQ to XML操作XML文件的方法,如创建XML文件.添加新的元素到XML文件中.修改XML文件中的元素.删除XML文件中的元素等. 1. 创建XML文件 string xmlFilePath ...
随机推荐
- [VBA] excel获取单元格的超链接地址函数
Function geturl(c As Range) As String geturl = c.Hyperlinks().Address End Function 设置超链接的函数是HYPERLIN ...
- CodeForces 19D Points
Pete and Bob invented a new interesting game. Bob takes a sheet of paper and locates a Cartesian coo ...
- Laravel-数据库操作笔记
(慕课网_轻松学会Laravel-基础篇_天秤vs永恒老师) 一.直接使用sql语句 1.路由 2.StudentController.php 二.查询构造器 简介:Laravel查询构造器(quer ...
- JSF标签大全详解
1. JSF入门 藉由以下的几个主题,可以大致了解JSF的轮廓与特性,我们来看看网页设计人员与应用程序设计人员各负责什么. 1.1简介JSF Web应用程序的开发与传统的单机程序开发在本质上存在着太多 ...
- Timus 1796. Amusement Park 聪明题
On a sunny Sunday, a group of children headed by their teacher came to an amusement park. Aunt Frosy ...
- Sonar入门(五):使用 Sonar 进行代码质量管理
Sonar 概述 Sonar 是一个用于代码质量管理的开放平台.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具. 与持续集成工具(例如 Hudson/Jenkins ...
- Eclipse导出jar包Unity打包错误
前几天接SDK使用的是Android Studio昨天打开AndroidStudio后自动更新了gradler然后失败了然后AndroidStudio就挂了.就是用之前的方法Eclipse到处jar包 ...
- 新建的硬盘-mount
一.查看已经格式化或已挂接硬盘 df -aT 等命令(自己度娘) 二.查看未挂硬盘和未格式化硬盘 1.fdisk -l 比如/dev/sdb 如果已经分区,会有sdb1. 2.格式化 #mkfs - ...
- keepalived vip漂移基本原理及选举算法
keepalived可以将多个无状态的单点通过虚拟IP(以下称为VIP)漂移的方式搭建成一个高可用服务,常用组合比如 keepalived+nginx,lvs,haproxy和memcached等.它 ...
- Javascript基础Function
函数声明与表达式 function someFunc(){ alert("这是一个函数"); } var func=function(){ alert("函数表达式&qu ...