1

CodeAutomation.iss と他の多くのソースを読みましたが、これに対する答えが見つかりませんでした...

提供された例を使用すると、xml オブジェクトは「Variant」タイプの変数に入れられます。これは「var」に相当すると思います。

ただし、そのような変数がnilを実行した後にあるかどうかを確認しようとするselectSingleNodeと、コンパイラは「型の不一致」と文句を言います。

そのようなノードのフェッチが失敗したかどうかを確認する方法はありますか? 何も見つからなかった場合、Inno に何を返しますか?

4

2 に答える 2

3

Variant 変数をVarIsNull関数でテストできます。

于 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 に答える