u_U... ya encontré una solución.
La dejo aquí puesta por si alguien la necesita.
biblioteca.xml Código PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="2XMLin1XSL.xsl" ?>
<biblioteca>
<categoria idCategoria="1">Ciencia Ficción</categoria>
<categoria idCategoria="2">Terror</categoria>
<categoria idCategoria="3">Técnico</categoria>
</biblioteca>
libro.xml Código PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>
<libros>
<libro idCategoria="3">
<titulo>Mis terrores favoritos 2</titulo>
<capitulo orden="1">
<titulo>Introduccion 2</titulo>
<texto>El objetivo de este archivo es conseguir mostrar la información de este xml junto con la información de otro xml distinto en una misma página html.</texto>
</capitulo>
<capitulo orden="2">
<titulo>Éxito conseguido 2</titulo>
<texto>De momento no se ha conseguido ningún éxito. </texto>
</capitulo>
</libro>
<libro idCategoria="1">
<titulo>Mis terrores favoritos</titulo>
<capitulo orden="1">
<titulo>Introduccion</titulo>
<texto>El objetivo de este archivo es conseguir mostrar la información de este xml junto con la información de otro xml distinto en una misma página html.</texto>
</capitulo>
<capitulo orden="2">
<titulo>Éxito conseguido</titulo>
<texto>De momento no se ha conseguido ningún éxito. </texto>
</capitulo>
</libro>
</libros>
2XMLin1XSL.xsl Código PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="biblioteca">
<html>
<head>
<title>Dos XML en Un XSL</title>
</head>
<body>
<for-each select="categoria">
<xsl:apply-templates select="categoria"/>
</for-each>
</body>
</html>
</xsl:template>
<xsl:template match="categoria">
<xsl:variable name="id" select="@idCategoria"/>
<xsl:variable name="cat" select="document('libro.xml')"/>
<xsl:for-each select="$cat/libros/libro[@idCategoria=$id]">
<!-- ojo.. se está mezclando justo en este punto etiquetas de los dos archivos xml -->
<p>
<b>
<font size="+2">
<xsl:apply-templates select="titulo"/>
</font>
</b>
</p>
<xsl:for-each select="capitulo">
<xsl:sort select="orden"/>
<xsl:apply-templates select="."/>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
<xsl:template match="capitulo">
<b>
<xsl:value-of select="titulo"/>
</b>
<p>
<xsl:value-of select="texto"/>
</p>
</xsl:template>
</xsl:stylesheet>

Nótese que las estructuras xml de los dos archivos han cambiado porque no me parecía que tuviera mucha lógica la que propuse inicialmente.
La llamada para verlo rular sería abrir en el navegador Internet Explorarer el archivo
biblioteca.xml que ya tiene asignado la hoja de estilo XSL.
De la forma que están enlazados los 3 archivos es para ponerlos en la misma carpeta.
Un beso