Convertesti XML-ul intr-o lista cu xmlMapper.readValue() si dupa o folosesti cu lista.stream().map( el-> el.name).filter(name -> name == ‘Janos’) daca XML-ul se mapeaza key-value.
Probabil ca exista librarii care fac exact ce face linq, eu personal urasc XML-ul pe backend. XML-ul e oribil pentru programare functionala fiindca n-ai o structura de date fixa. De multe ori n-ai obiecte simple de la deserializare, ai un tree de noduri in tree de noduri in tree de noduri si valorile nu sunt key value ci ai mai multe attribute. (JS developer here)
Deci parsarea de XML se face cu query-uri, daca ai un XML parser (XPath) poti sa faci un query similar cu linq si lucrezi direct cu nodurile de XML cu functii speciale ale parser-ului.
Daca vrei neaparat ceva functional deserializezi XML-ul, il parsezi functional, dupa reconstruiesti nodurile XML din array/lista. Alternativa e sa iti scrii propriul filter, map, reduce pentru noduri.