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;
时间: 2024-10-24 12:55:14

InnoSetup XML操作函数的相关文章

XML字符串的读写操作函数及示例程序

xml|程序|函数|示例|字符串 // OpXML.cpp : Defines the entry point for the console application.// //----------------------- Coded By Ronk --------------------------////-----------------------  2005-07-17  --------------------------// #include "stdafx.h"#in

PHP4与MySQL数据库操作函数详解(四)

  <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />         <6>.数据库级database的操作函数(2个):      1.mysql_create_db()   格式:int mysql_create_db(string database name , int link_identifier);      通过程序来建立1个数据库databas

PHP4与MySQL数据库操作函数详解(三)

  <5>.数据库记录操作函数(5个):      1.mysql_fetch_array()   格式:array mysql_fetch_array(int query);      执行成功,返回1个数组,该数组保存有下一条记录的值,如执行失败,则返回False值.   返回的数组既可以用下标来表示,也可以用字段名来表示.      例子:   <?php   $query = mysql_query($sql , $connect);   while($arrary = mysq

兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码_javascript技巧

在编写处理xml的网页时,经常为浏览器兼容性头疼.于是我将常用的xml操作封装为函数.经过一段时间的改进,现在已经很稳定了,用起来很舒服. 函数有-- xml_loadFile:xml同步/异步加载. xml_transformNode:xsl转换. xml_text:节点的文本. selectSingleNode:根据XPath选择单个节点. selectNodes:根据XPath选择多个节点. 全部代码(zyllibjs_xml.js)-- 复制代码 代码如下: /* zyllibjs_xm

ASP XML操作类代码_应用技巧

复制代码 代码如下: Class XMLClass Private objXml Private xmlDoc Private xmlPath '//============================================================ ' Sub Class_initialize Set objXml = Server.CreateObject("MSXML2.DOMDocument") objXml.preserveWhiteSpace = tru

Asp.Net+XML操作基类(修改,删除,新增,创建)第1/2页_实用技巧

/**********************************************************************************  *   * 功能说明:XML处理基类  * 作者: 刘功勋;  * 版本:V0.1(C#2.0);时间:2006-12-13  *   * *******************************************************************************/ using System;

PHP XML操作的各种方法解析(比较详细)_php技巧

XML是一种流行的半结构化文件格式,以一种类似数据库的格式存储数据.在实际应用中,一些简单的.安全性较低的数据往往使用 XML文件的格式进行存储.这样做的好处一方面可以通过减少与数据库的交互性操作提高读取效率,另一方面可以有效利用 XML的优越性降低程序的编写难度. PHP提供了一整套的读取 XML文件的方法,很容易的就可以编写基于 XML的脚本程序.本章将要介绍 PHP与 XML的操作方法,并对几个常用的 XML类库做一些简要介绍. 1 XML简介 XML是"可扩展性标识语言(eXtensib

C#实现的xml操作类完整实例_C#教程

本文实例讲述了C#实现的xml操作类,分享给大家供大家参考,具体如下: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System

PHP中XML操作类XML Library的实现

本文实例讲述了PHP实现的XML操作类.分享给大家供大家参考,具体如下: 这是一个接口程序,需要大量分析解析XML,PHP的xml_parse_into_struct()函数不能直接生成便于使用的数组,而SimpleXML扩展在PHP5中才支持,于是逛逛搜索引擎,在老外的网站上找到了一个不错的PHP XML操作类. 一.用法举例: 1.将XML文件解释成便于使用的数组: <?php include('xml.php');//引用PHP XML操作类 $xml=file_get_contents(