for $nam1 in //element/data[@type='type'] let $textn1 := $nam1/following-sibling::data[@type='string']/text() let $nam2 := $nam1/parent::element/following-sibling::element[1]/data[@type='type'] let $textn2 := $nam2/following-sibling::data[@type='string']/text() let $ver := $nam2/parent::element/following-sibling::element[1]/data[@type='type'] let $textv2 := $ver/following-sibling::data[@type='string']/text() return if($nam1/text()='NAM' and $nam2/text()='NAM' and $ver/contains(text(), 'VER')) then string-join(($textn1, $textn2, $textv2), ' ') else ()