Like James, I'm not 100% sure if I understood you, but I *think* you're trying to do something like this?
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.4.7-->
<command id="454" name="Search my list for {1}" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>VC heard: {1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PayloadXML.GetValue</cmdType>
<params>
<param>payloads\produce.xml</param>
<param>{1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<if ifBlockDisabled="False" ifNot="False">
<ifType>LastActionSuccess</ifType>
<ifParams>&&</ifParams>
<then>
<action>
<cmdType>OSD.AddText</cmdType>
<params>
<param>Found: {LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>OSD.AddText</cmdType>
<params>
<param>{1} was not found in the Produce payload file</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<phrase>Search my list for</phrase>
<payloadDictation>payloadDictation: Regular</payloadDictation>
</command>
The example above does the following:
1. Voice command: Search "my list" for {payload based on payload dictation}.
2. Command searches a payload xml file called "produce.xml" (see attached*) to see if the understood phrase is found.
3. If that phrase is found, returns the value from the payload XML file.
4. If phrase not found, my command indicates that it wasn't found.
If one wanted to execute 2 different commands depending on the if/else logic, one could use event triggers (VC.TriggerEvent) in each case to trigger 2 separate commands.
There are other ways to do this as well.
I admit I may be misunderstanding your aim but maybe this starting point can help the discussion progress.
*The file path in the command points to the produce.xml file stored in the payloads folder of my VC directory.