Inno Setup 操作XML

const
  XMLFileName 
=   ' app.config ' ;


//-------------------------------------------------------------
var
   XMLDoc,Key1Node: Variant;
  XmlString,Path,Key1Value: String;
begin
try
  XMLDoc :
=  CreateOleObject( ' MSXML2.DOMDocument.4.0 ' );
except
    RaiseException(
' Please install MSXML first. ' # 13 # 13 ' (Error '' '   +  GetExceptionMessage  +   ' '' occurred) ' );
end ;
  XMLDoc.async :
=  False;
  XMLDoc.resolveExternals :
=  False;
  Path :
=  ExpandConstant( ' {src}\ ' );

 
//*************** 创建XML文件 ***************
// XmlString : =    ' <?xml version=''1.0'' encoding=''utf-8'' ?> ' +
// ' <configuration> ' # 13 # 10   +
//    ' <appSettings> ' # 13 # 10   +
//      ' <add key=''Key1'' value=''Value1''></add> ' # 13 # 10 +
//      ' <!--<add key=''Key2'' value=''Value2''></add>--> ' # 13 # 10 +
//    ' </appSettings> ' # 13 # 10   +
// ' </configuration> ' ;
//   XMLDoc.LoadXml(XmlString);
//   XMLDoc.Save(Path  +  XMLFileName);

 

 
//************** 加载并读取XML文件 ***************     
  XMLDoc.load(Path 
+  XMLFileName);
  
if  XMLDoc.parseError.errorCode  <>   0   then
    RaiseException(
' Error on line  '   +  IntToStr(XMLDoc.parseError.line)  +   ' , position  '   +  IntToStr(XMLDoc.parseError.linepos)  +   ' '   +  XMLDoc.parseError.reason);
  MsgBox(
' Loaded the XML file. ' , mbInformation, mb_Ok);
  
{  Modify the XML document  }
  RootNode :
=  XMLDoc.DocumentElement;
  AppSetNode :
=   RootNode.SelectSingleNode( ' appSettings ' );
  Key1Node :
=  AppSetNode.SelectSingleNode( ' /configuration/appSettings/add[@key=''Key1''] ' );
  Key1Value:
=    Key1Node .Attributes.GetNamedItem( ' value ' ).Value;
  MsgBox(Key1Value, mbInformation, mb_Ok);
  
// RootNode.RemoveChild (AppSetNode );
   AppSetNode.RemoveChild(Key1Node);
   XMLDoc.Save(Path 
+  XMLFileName);
  MsgBox(
' Saved the modified XML as '' '   +  XMLFileName  +   ' ''. ' , mbInformation, mb_Ok);
end ;

 

你可能感兴趣的:(Inno Setup)