在Inno Setup中检查xml节点提取是否成功

时间:2013-05-08 09:33:51

标签: xml dom inno-setup

我已阅读CodeAutomation.iss和其他一些来源,但我找不到答案......

使用提供的示例,xml对象被放入“Variant”类型的变量中。我认为这只相当于'var'。

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

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分: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;