Doplním, že pro tyto případy lze použít funkci current(), která kontext určí přesně.
No jo, jenže ta je zase dostupná až od XPath 2.0, tedy XSLT 2.0. XSLT 2.0 přineslo oproti XSLT 1.0 právě spoustu věcí, které umožňují složitější zpracování dat v jednom průchodu. Když je omezení na použití XSLT 1.0, je to jak mít jednu ruku za zády.
super...pracovat s for-each je pro mě jednoduší
Pro vás ano, ale XSLT procesoru tím podrážíte nohy, protože pak nemůže kód moc optimalizovat.
apply-templates je deklarativní, říkáte tím
co se má udělat a je na XSLT procesoru,
jak to udělá.
for-each je imperativní, říkáte
jak se to má udělat a XSLT procesoru nezbývá nic jiného, než to udělat tak, jak jste předepsal – i když by to třeba šlo jinak lépe. Je to stejné jako u SQL. Ale je pravda, že u XSLT 1.0 procesoru to s optimalizacemi asi nebude žádná sláva.