以下(引用中)是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>
答案 0 :(得分:8)
您最好的选择是使用XML DOM来选择和编辑所需的节点as TLama suggested。
或者,您可以在要替换的位置安装包含已知字符串的模板文件。 然后可以将该文件作为字符串读取,修改并使用以下内容重新写回:
[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;
另见this question关于对INI文件进行同样的事情。