spuctulpask
New Member
i need help with inno setup, i need to save some xml nodes in a specific line, but i dont know how to.This is my code\[code\]procedure SaveValueToXML(const AFileName, APath, AValue: string);var XMLNode: Variant; XMLDocument: Variant; begin XMLDocument := CreateOleObject('Msxml2.DOMDocument.6.0'); try XMLDocument.async := False; XMLDocument.load(AFileName);// if (XMLDocument.parseError.errorCode <> 0) then// MsgBox('Install the software. ' +// XMLDocument.parseError.reason, mbError, MB_OK)// else begin XMLDocument.setProperty('SelectionLanguage', 'XPath'); XMLNode := XMLDocument.selectSingleNode(APath); XMLNode.text := AValue; XMLDocument.save(AFileName); end; except MsgBox('Install the software', mbError, MB_OK); end;end;function NextButtonClick(PageID: Integer): Boolean;var XMLFile: string;begin Result := True; if (PageId = wpFinished) then begin XMLFile := ExpandConstant('{pf}\Hell\0\Config.xml'); if FileExists(XMLFile) then begin SaveValueToXML(XMLFile, '//@param', PEdit.Text); //PEdit.text is from a custom input text box in the installer, ignore. SaveValueToXML(XMLFile, '//@path', ExpandConstant('{reg:HKCU\SOFTWARE\Craps,InstallPath}\Test.exe')); end; end;end;\[/code\]This is my XML file:\[code\]<?xml version="1.0" encoding="UTF-8"?><stuffs> <stuff ident="555" path="C:\Program Files (x86)\Other thing\Other.exe" param="-alive" display="1" priority="0"/> <stuff ident="666" path="C:\Program Files (x86)\Craps\test.exe" param="-dead" display="1" priority="0"/> </stuffs>\[/code\]The problem is that my script always write in the first line. What i need is to always save the nodes in the line that start with \[code\]<stuff ident="666"\[/code\]Thanks in advance!