我正在尝试将一些“变量”子项添加到十几个xml文件中的“变量”节点。
这就是XML文件的样子:
<?xml version="1.0" encoding="UTF-8"?>
<agent-input>
<variables>
</variables>
<server>...
这是我的创新设置代码:
procedure AddVariablesToXML(const AFileName: String);
var
XMLNode, XMLDocument, XMLNodeVariable: Variant;
begin
XMLDocument := CreateOleObject('Msxml2.DOMDocument.6.0');
try
XMLDocument.async := False;
XMLDocument.resolveExternals := False;
XMLDocument.load(AFileName);
if (XMLDocument.parseError.errorCode <> 0) then
MsgBox('Erreur au parsing du fichier XML : ' + AFileName +
XMLDocument.parseError.reason, mbError, MB_OK)
//TODO GestionErreur
else
begin
XMLDocument.setProperty('SelectionLanguage', 'XPath');
XMLDocument.selectNodes('//agent-input//variables//variable').removeAll();
LOG(AFileName);
LOG('1');
XMLNode := XMLDocument.selectSingleNode('//agent-input//variables');
LOG('2');
XMLNodeVariable := XMLDocument.createElement('variable');
XMLNodeVariable.setAttribute('name', 'Computer');
XMLNodeVariable.setAttribute('value', 'TEST');
XMLNode.appendChild(XMLNodeVariable);
LOG('3');
XMLNodeVariable := XMLDocument.createElement('variable');
XMLNodeVariable.setAttribute('name', 'DomaineDNS');
XMLNodeVariable.setAttribute('value', 'TEST');
XMLNode.appendChild(XMLNodeVariable);
LOG('4');
XMLDocument.save(AFileName);
end;
except
MsgBox('An error occured! \line' + GetExceptionMessage, mbError, MB_OK);
//TODO GestionErreur
end;
end;
这对前2个文件工作正常但在LOG 2之后的第3个文件崩溃; 我已经尝试将第3个文件更改为可以查看该文件中的某些内容是否有责任但是它在完全相同的位置崩溃的文件...
我所拥有的只是安装程序退出代码:255 。
我的问题似乎不像我在SO上找到的那些:
Inno Setup crashes in appendChild msxml
Adding nodes to xml with DOM in inno Setup - strange problems