Без использования функции это выражение XQuery:
<ul>{
for $TELECAST in /root/telecast
return
<li>{
for $item in $TELECAST/title/*
return
typeswitch($item)
case element(maintitle) return <h3>{string($item)}</h3>
case element(subtitle) return <h4>{string($item)}</h4>
case element(description) return <h5>{string($item)}</h5>
default return ()
}</li>
}</ul>
С этим входом:
<root>
<telecast>
<title>
<maintitle>Title</maintitle>
<subtitle>Subtitle</subtitle>
<description>Description</description>
</title>
</telecast>
<telecast>
<title>
<maintitle>Title2</maintitle>
<description>Description2</description>
</title>
</telecast>
</root>
Выход:
<ul>
<li>
<h3>Title</h3>
<h4>Subtitle</h4>
<h5>Description</h5>
</li>
<li>
<h3>Title2</h3>
<h5>Description2</h5>
</li>
</ul>