These XPaths would do what we want

/biblio/entry[not(author)]

and

/biblio/entry[
./title/text()=concat('Programming Ruby. The Pragmatic 
Programmer',"'",'s Guide')
and
./year/text()='2000'
]/author

Sean, do you think those will work? (in the next version?)

In an XSLT:

   <xsl:template match="text() | @*"/>

   <!--in the current file,
     find all entries without an author child  -->
<xsl:template match="/biblio/entry[not(author)]">
     <xsl:copy-of select="."/>
   </xsl:template>

   <!-- in the old file,
        find the author of a specific book  -->
   <xsl:template match="/biblio/entry[./title/text()=concat('Programming 
Ruby. The Pragmatic Programmer',&quot;'&quot;,'s Guide')
and
./year/text()='2000'
]/author">
     <xsl:copy-of select="."/>
   </xsl:template>
</xsl:stylesheet>

Tobi


-- 

* peace&love.
* http://www.pinkjuice.com/