我已经阅读了 CodeAutomation.iss 和一堆其他来源,但我找不到这个问题的答案......
使用提供的示例,将 xml 对象放入“Variant”类型的变量中。我认为这只是'var'的等价物。
但是,当我尝试检查这样的变量是否nil
在执行 a 之后selectSingleNode
时,编译器会抱怨“类型不匹配”。
有没有办法检查这样的节点获取是否失败?如果什么都没找到,它会返回 Inno 什么?
我已经阅读了 CodeAutomation.iss 和一堆其他来源,但我找不到这个问题的答案......
使用提供的示例,将 xml 对象放入“Variant”类型的变量中。我认为这只是'var'的等价物。
但是,当我尝试检查这样的变量是否nil
在执行 a 之后selectSingleNode
时,编译器会抱怨“类型不匹配”。
有没有办法检查这样的节点获取是否失败?如果什么都没找到,它会返回 Inno 什么?
VarIsNull
您可以使用该函数测试您的 Variant 变量。
只需检查节点长度结果。此示例通过 XPath 按属性名称选择节点
XMLDocument.setProperty('SelectionLanguage', 'XPath');
XMLNode := XMLDocument.selectNodes('//' + ANodeName + '[@name="' + AttName + '"]');
if (XMLNode.Length <= 0) then
begin
XMLNode := XMLDocument.selectSingleNode(APath);
NewNode := XMLDocument.createElement(ANodeName);
NewNode.setAttribute['type'] := AttrType;
NewNode.setAttribute['name'] := AttName;
NewNode.setAttribute['value'] := AttrValue;
XMLNode.appendChild (NewNode);
XMLNode.lastChild.text := ANodeText;
XMLDocument.save(AFileName);
end;