for $nom1 in //item/a[4] let $textn1 := $nom1/preceding-sibling::a[2]/text() let $prp1 := $nom1/parent::item/following-sibling::item[1]/a[4] let $textp1 := $prp1/preceding-sibling::a[2]/text() let $nom2 := $prp1/parent::item/following-sibling::item[1]/a[4] let $textn2 := $nom2/preceding-sibling::a[2]/text() let $prp2 := $nom2/parent::item/following-sibling::item[1]/a[4] let $textp2 := $prp2/preceding-sibling::a[2]/text() return if($nom1/text()='NOUN' and $prp1/text()='ADP' and $nom2/text()='NOUN' and $prp2/text()='ADP') then string-join(($textn1, $textp1, $textn2, $textp2), ' ') else ()