Wer hat denn sowas verbrochen.
Dein Problem ist, dass die tag-Einträge geschachtelt sind.
Per SQL mit XPath musst du dann einen Union bauen, der alle tag-Elemente selektiert:

/trac/esr/fis/tag
/trac/esr/fis/tag/tag
/trac/esr/fis/tag/tag/tag
/trac/esr/fis/tag/tag/tag/tag
/trac/esr/fis/tag/tag/tag/tag/tag
/trac/esr/fis/tag/tag/tag/tag/tag/tag

Was willst du machen, wenn mal mehr als 6 Stufen vorkommen?
Besser wäre es, wenn jeder tag auch einen /tag hätte.