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