... Alright. I couldn't help but entertain myself over coffee this morning.
There are multiple methods to do the kind of thing you want to do. Starting with the Reuters example I posted above, I've created two variations that could be used to have VC read one headline at a time and then wait for confirmation before supplying the next.
Both of these require enabling the Python plugin in order to keep a count of what headline we're on.
Version 1 scrapes the site each time, so it's not as efficient in that sense, but it has just two commands.
Version 2 scrapes the site once and stores results in a payload xml file. It has three commands. (Not that 2 vs. 3 matters really, I'm just pointing it out.)
There are other ways this could be done.
...If you try these out, it's probably best to only copy one into your tree at each time since they use similar voice commands.
Version 1:
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.1.0.7-->
<commandGroup open="True" name="reuters what's next version 1" enabled="True" prefix="" priority="0" requiredProcess="" description="">
<command id="1162" name="Announce headline" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="{Match.{i}.1} is the headline (where {i} is 1st, 2nd, 3rd ... headlines)
{Match.{i}.2} is the URL linking to each full story.
">
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>result={var.count}+1</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>count</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Scrape</cmdType>
<params>
<param>http://feeds.reuters.com/reuters/worldNews</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegEx</cmdType>
<params>
<param>item><title>(.*?)<.*?<link>(.*?)<.*?description>.*?Reuters\).-.(.*?)\&lt;</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<if ifBlockDisabled="False" ifNot="True">
<ifType>(A)Contains(B)</ifType>
<ifParams>{Match.{var.count}.1}&&Match.{var.count}.1</ifParams>
<then>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>{Match.{var.count}.1}.</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.SpeakSync</cmdType>
<params>
<param>{Match.{var.count}.1}. </param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.Speak</cmdType>
<params>
<param>Would you like to hear the next headline?|Would you like to hear more?|How about the next one</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>Looks like that's it for now.</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.Speak</cmdType>
<params>
<param>I'm not seeing any more.|That's all the headlines.|Looks like that's it for now.</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<event>nextUpdate</event>
<phrase>What's new from Reuter's</phrase>
</command>
<command id="1176" name="confirm update" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)Contains(B)</ifType>
<ifParams>{LastSpoken}&&Yes</ifParams>
<then>
<action>
<cmdType>TTS.SpeakSync</cmdType>
<params>
<param>OK.|Sure thing|Let's see what's next</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>VC.TriggerEvent</cmdType>
<params>
<param>nextUpdate</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>TTS.SpeakSync</cmdType>
<params>
<param>No problem.|Talk to you later then.</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>count</param>
<param>0</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<phrase>Yes, No, Nevermind</phrase>
<phrase optional="true">please, thanks</phrase>
</command>
</commandGroup>
Version 2:
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.1.0.7-->
<commandGroup open="True" name="reuters what's next version 2" enabled="True" prefix="" priority="0" requiredProcess="" description="">
<command id="1203" name="Announce headline" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="{Match.{i}.1} is the headline (where {i} is 1st, 2nd, 3rd ... headlines)
{Match.{i}.2} is the URL linking to each full story.
">
<action>
<cmdType>PayloadXML.Clear</cmdType>
<params>
<param>payloads\headlines.xml</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Scrape</cmdType>
<params>
<param>http://feeds.reuters.com/reuters/worldNews</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegEx</cmdType>
<params>
<param>item><title>(.*?)<.*?<link>(.*?)<.*?description>.*?Reuters\).-.(.*?)\&lt;</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PayloadXML.AddPair</cmdType>
<params>
<param>payloads\headlines.xml</param>
<param>{Match.{i}.1}</param>
<param>Headline {i}</param>
</params>
<cmdRepeat>{#M}</cmdRepeat>
</action>
<action>
<cmdType>VC.TriggerEvent</cmdType>
<params>
<param>ReadHeadline</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<phrase>What's new from Reuter's</phrase>
</command>
<command id="1192" name="confirm update" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)Contains(B)</ifType>
<ifParams>{LastSpoken}&&Yes</ifParams>
<then>
<action>
<cmdType>TTS.SpeakSync</cmdType>
<params>
<param>OK.|Sure thing|Let's see what's next</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>VC.TriggerEvent</cmdType>
<params>
<param>ReadHeadline</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>TTS.SpeakSync</cmdType>
<params>
<param>No problem.|Talk to you later then.</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>count</param>
<param>0</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<phrase>Yes that would be great, Yes please, No thanks, Nevermind</phrase>
</command>
<command id="1201" name="read headline" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>result={var.count}+1</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>count</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PayloadXML.GetValue</cmdType>
<params>
<param>payloads\headlines.xml</param>
<param>Headline {var.count}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<if ifBlockDisabled="False" ifNot="False">
<ifType>LastActionSuccess</ifType>
<ifParams>&&</ifParams>
<then>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.AddText</cmdType>
<params>
<param>Next headline?</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.SpeakSync</cmdType>
<params>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.Speak</cmdType>
<params>
<param>Next headline?|Do you want more?</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>Looks like that's it.</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.Speak</cmdType>
<params>
<param>Looks like that's it.|That's all she wrote.|No more headlines.</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<event>ReadHeadline</event>
</command>
</commandGroup>
[edited version 2 to add a missing "PayloadXML.Clear" action]