XPath 2.0 решение с одним вкладышем:
tokenize(replace(replace(substring-after(normalize-space(string-join(//tr//text()[normalize-space()]|//tr[@class]/@class,",")),",")," ?, ?",","),"oneven","even"),",even,")
Выход:
String='112 UKRAÏNA,Globecast,13° EAST,HOTBIRD 13C,UKRAINIAN,HD,CLEAR'
String='13 ULICA,Cyfrowy Polsat,13° EAST,HOTBIRD 13C,POLISH,HD,CONAX / IRDETO / MEDIAGUARD / NAGRAVISION / VIACCESS'
String='20 MEDIASET,Mediaset,13° EAST,HOTBIRD 13C,ITALIAN,SD,NAGRAVISION / VIDEOGUARD'
String='20 MEDIASET,Mediaset,13° EAST,HOTBIRD 13E,ITALIAN,HD,NAGRAVISION / VIDEOGUARD'
String='2M MONDE,Globecast,13° EAST,HOTBIRD 13B,ARABIC,SD,CLEAR,GENERAL'
String='2M MONDE,Globecast,13° EAST,HOTBIRD 13C,ARABIC,SD,CLEAR,GENERAL'
String='4 FUN DANCE,Cyfrowy Polsat,13° EAST,HOTBIRD 13C,POLISH,SD,CLEAR,MUSIC'
String='4 FUN GOLD,Cyfrowy Polsat,13° EAST,HOTBIRD 13C,POLISH,SD,CLEAR,MUSIC'
String='4 FUN TV,Cyfrowy Polsat,13° EAST,HOTBIRD 13C,POLISH,SD,CLEAR,MUSIC'
...