1

我已经阅读了 CodeAutomation.iss 和一堆其他来源,但我找不到这个问题的答案......

使用提供的示例,将 xml 对象放入“Variant”类型的变量中。我认为这只是'var'的等价物。

但是,当我尝试检查这样的变量是否nil在执行 a 之后selectSingleNode时,编译器会抱怨“类型不匹配”。

有没有办法检查这样的节点获取是否失败?如果什么都没找到,它会返回 Inno 什么?

4

2 回答 2

3

VarIsNull您可以使用该函数测试您的 Variant 变量。

于 2013-05-08T09:38:30.783 回答
1

只需检查节点长度结果。此示例通过 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;
于 2013-09-09T09:14:45.987 回答