for $nom1 in //element/data[@type='type'] let $textn1 := $nom1/following-sibling::data[@type='string']/text() let $prp1 := $nom1/parent::element/following-sibling::element[1]/data[@type='type'] let $textp1 := $prp1/following-sibling::data[@type='string']/text() let $nom2 := $prp1/parent::element/following-sibling::element[1]/data[@type='type'] let $textn2 := $nom2/following-sibling::data[@type='string']/text() let $prp2 := $nom2/parent::element/following-sibling::element[1]/data[@type='type'] let $textp2 := $prp2/following-sibling::data[@type='string']/text() return if($nom1/text()='NOM' and $prp1/text()='PRP' and $nom2/text()='NOM' and $prp2/text()='PRP') then string-join(($textn1, $textp1, $textn2, $textp2), ' ') else ()