To iterate in XForms 1.1 you need to use the while
attribute (see 10.18 Iteration of XForms Actions).
In your case that can be done with an additional instance:
<xf:instance id="iterator">
<iterator xmlns=""></iterator>
</xf:instance>
And the action could then be:
<xf:action ev:event="DOMActivate">
<xf:setvalue ref="instance('iterator')" value="1"></xf:setvalue>
<xf:action while="instance('iterator') < count(instance('tmp')/item)">
<xf:insert context="instance('tmp')/item[position()=instance('iterator')]"
origin="instance('myvrs')/subitem" nodeset="subitem" position="after"></xf:insert>
<xf:setvalue ref="instance('iterator')" value="instance('iterator') + 1"></xf:setvalue>
</xf:action>
</xf:action>
Note that this is standard XForms 1.1 and that should work with other implementations.
The full XForms would be:
<html xmlns:xf="http://www.w3.org/2002/xforms" xmlns="http://www.w3.org/1999/xhtml"
xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<head>
<title>Insert for all</title>
<xf:model>
<xf:instance id="myvrs">
<myvrs xmlns="">
<subitem></subitem>
</myvrs>
</xf:instance>
<xf:instance id="tmp">
<temp xmlns="">
<item>
<subitem>11</subitem>
</item>
<item>
<subitem>21</subitem>
<subitem>22</subitem>
</item>
<item></item>
</temp>
</xf:instance>
<xf:instance id="iterator">
<iterator xmlns=""></iterator>
</xf:instance>
</xf:model>
</head>
<body>
<xf:trigger>
<xf:label>button</xf:label>
<xf:action ev:event="DOMActivate">
<xf:setvalue ref="instance('iterator')" value="1"></xf:setvalue>
<xf:action while="instance('iterator') < count(instance('tmp')/item)">
<xf:insert context="instance('tmp')/item[position()=instance('iterator')]"
origin="instance('myvrs')/subitem" nodeset="subitem" position="after"></xf:insert>
<xf:setvalue ref="instance('iterator')" value="instance('iterator') + 1"></xf:setvalue>
</xf:action>
</xf:action>
</xf:trigger>
<fr:xforms-inspector xmlns:fr="http://orbeon.org/oxf/xml/form-runner"></fr:xforms-inspector>
</body>
</html>