Inno设置:如何替换XML文件中的字符串?

7 xml inno-setup

以下(引用中)是XML文件的内容,它是我的包的一部分.我想替换c:\path\myapp.exe安装期间的值(使用用户选择安装应用程序的真实路径.这可能吗?如何?

<?xml version="1.0" encoding="UTF-8"?>
<launchConfiguration type="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType">
   <listAttribute key="org.eclipse.debug.ui.favoriteGroups">
      <listEntry value="org.eclipse.ui.externaltools.launchGroup"/>
   </listAttribute>
   <stringAttribute key="org.eclipse.ui.externaltools.ATTR_LAUNCH_CONFIGURATION_BUILD_SCOPE" value="${none}"/>
   <stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="c:\path\myapp.exe"/>
   <stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="${resource_loc}"/>
</launchConfiguration>
Run Code Online (Sandbox Code Playgroud)

Dea*_*nna 9

您最好的选择是使用XML DOM来选择和编辑TLama建议的所需节点.

或者,您可以在要替换的位置安装包含已知字符串的模板文件.然后可以将该文件作为字符串读取,修改并使用以下内容重新写回:

[Code]
procedure WriteAppPath;
var
    FileData: String;
begin
    LoadStringFromFile(ExpandConstant('{app}\app.xml'), FileData);
    StringChange(FileData, 'XXXXXMARKERXXXXX', ExpandConstant('{app}'));
    SaveStringToFile(ExpandConstant('{app}\app.xml'), FileData, False);
end;
Run Code Online (Sandbox Code Playgroud)

又见这个问题,这样做集体同样的事情INI文件.