Okay, just ran this through Java... haven't done any programming in over half a year and Java was the last thing I used, even did some brief XML file reading magic back then, but nothing that would help much here...
So I went off to google and clicked the first results I found for some examples about Java XSL Transforms and about XSLT itself. Unfortunately both of these are german. But I bet resources like this exist in english as well.
Link 1
Link 2
So I set up my little Transformer (

) in Eclipse and let him do the magic. First off he complained that there was no closing "</xsl:stylesheet>" tag but I assume you just forgot to copy&paste that.
Here's the initial output for me:
<DIV xmlns="http://www.w3.org/TR/REC-html40">
<UL>
<DIV>
<LI>1<A></A>
</LI>
</DIV>
<DIV>
<LI>2<A></A>
</LI>
</DIV>
<DIV>
<LI>3<A></A>
</LI>
</DIV>
<DIV>
<LI>4<A></A>
</LI>
</DIV>
</UL>
</DIV>
...something is very wrong there. He did not even output url or name. I can only assume it's due to the way you adressed "hyperlink/url" with the slash in it and my parser is to stupid to read that or whatever. I dunno if that is correct XSL or not, but was too lazy to find out.
Anyways. Here's the version I got that outputs the stuff you want: (atleast for me)
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/TR/REC-html40">
<xsl:output method="html" indent="yes"/>
<xsl:template match="list">
<DIV>
<UL><xsl:apply-templates /></UL>
</DIV>
</xsl:template>
<xsl:template match="listitem">
<LI><xsl:apply-templates /> </LI>
</xsl:template>
<xsl:template match="hyperlink">
<A><xsl:attribute name="href"><xsl:value-of select="url" /></xsl:attribute>
<xsl:apply-templates />
</A>
</xsl:template>
<xsl:template match="url">
</xsl:template>
<xsl:template match="name">
<xsl:value-of select="." />
</xsl:template>
</xsl:stylesheet>
The important part is:
Quote: "<A><xsl:attribute name="href"><xsl:value-of select="url" /></xsl:attribute>"
this creates the anchor tag and assigns the href-attribute to it. Which will result in the output we want:
Quote: "<A href=" url goes here ">"
However with the way the xml document is structured I had to leave the template for "url" in there and leave it empty. This is important, because this way the url will not be copied as plaintext, which it would if you told it to 'apply-templates' or if you left the template out.
For the name you could safely remove the template, and the 'name'-tag in the XML-doc too - unless you need this later on.
Oh and I cut out the DIV-tag around the individual list elements, if you still need that one for some reason, put it back in.
Anyways, from my very brief experience with XSL (I'm using this for the first time pretty much

) I think this XSL doc is much nicer:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/TR/REC-html40">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<div>
<ul>
<xsl:for-each select="list/listitem">
<li>
<a>
<xsl:attribute name="href"><xsl:value-of select="url" /></xsl:attribute>
<xsl:apply-templates />
</a>
</li>
</xsl:for-each>
</ul>
</div>
</xsl:template>
<xsl:template match="url">
</xsl:template>
</xsl:stylesheet>
...or to eliminate the empty url template, even shorter version:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/TR/REC-html40">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<div>
<ul>
<xsl:for-each select="list/listitem">
<li>
<a>
<xsl:attribute name="href"><xsl:value-of select="url" /></xsl:attribute>
<xsl:value-of select="name" />
</a>
</li>
</xsl:for-each>
</ul>
</div>
</xsl:template>
</xsl:stylesheet>
Oh and notice how we do have the slashes in the select command, and these didn't work for me in the beginning? I assume these are based on where you are in the hierarchy. When you were applying templates to the inside of hyperlink (oh btw I scrapped that one out of the XML doc... it was basically interchangeable with 'listitem' and could be omitted as it had no real function) and... hm... well looking at the initial XSL document maybe from the apply-templates in the listitem it could potentially apply the hperlink template (which just pastes the content into the <a>-tag) OR it could apply the match="hyperlink/url" and match="hyperlink/name"? Would that be the way this works? Maybe these conflict somehow and in your Parser it is applying the latter two, but in mine the 'hyperlink'-template already eliminated the url and name.

but as I said I have no idea what I'm doing, I just happen to get it to work through the Magic of Friendship™
[and just for clarification, my current XML doc for the last XSL file would be without the hyperlink tags:
<list>
<listitem><url>page1.xml</url><name>Go to Page 1</name></listitem>
<listitem><url>page2.xml</url><name>Go to Page 2</name></listitem>
<listitem><url>page3.xml</url><name>Go to Page 3</name></listitem>
<listitem><url>page4.xml</url><name>Go to Page 4</name></listitem>
</list>
]
~RedFlames
Edit: Typos everywhere... I hope I killed 'em all. Also, this post is fomatted pretty badly. I won't fix that. :I