xslt. Loop with recursion

xml на входе:

<root>
 <child>
  <name>Jon</name>
  <age>10</age>
 </child>
 <child>
  <name>Bob</name>
  <age>10</age>
 </child>
 <child>
  <name>Michael</name>
  <age>10</age>
 </child>
</root>

xslt-трансформация:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="/">
  <html>
   <head></head>
   <body>
    <xsl:apply-templates select="//child">
   </xsl:apply-templates></body>
  </html>
 </xsl:template>

 <xsl:template match="child">
  <xsl:value-of select="./name">
  <xsl:call-template name="dots">
   <xsl:with-param name="count" select="80 - string-length(./name) - string-length(./age)">
  </xsl:with-param></xsl:call-template>
  <xsl:value-of select="./age">


 </xsl:value-of></xsl:value-of></xsl:template>

 <xsl:template name="dots">
  <xsl:param name="count" select="1">
  <xsl:if test="$count &gt; 0">
  <xsl:text>_</xsl:text>
  <xsl:call-template name="dots">
   <xsl:with-param name="count" select="$count - 1">
  </xsl:with-param></xsl:call-template>
  </xsl:if>    
 </xsl:param></xsl:template>
</xsl:stylesheet>

Oracle. Sql functions to update xml date

updateXML - замена xml узлов
insertChildXML - вставка дочерних xml элементов или аттрибутов в определенный элемент
insertXMLbefore - вставка XML узлов любого вида непосредственно перед данным узлом (кроме узла атрибута)
appendChildXML - вставка XML узлов любого вида непосредственно в конец данного узла
deleteXML - удаление xml узлов

Очередное разочерование в oracle: нужно было пройтись по xml дабы произвести вставки текстовых данных в пустые теги.

select updateXML(xmltype('<root><node></node></root>'), '/root/node/text()', 'Some message') from dual

output: <root><node/></root>

И что получаю на выходе? Ничего. Оказывается в данном случае предлагается только замена пустого элемента таким же элементом, но уже со вставленными текстовыми данными.

select updateXML(xmltype('<root><node></node></root>'), '/root/node', xmltype('<node>Some message</node>')) from dual

output: <root><node>Some message</node></root>