[xsl] No Duplicate Contain() is Allowed?

Subject: [xsl] No Duplicate Contain() is Allowed?
From: Alice Wei <ajwei@xxxxxxxxxxx>
Date: Sun, 16 Dec 2007 22:37:47 -0500
Dear all:

For those of you who may know something about SQL or XQuery might be able to help me out.

XML:
     <bookshelf>
     <book>XSLT 2.0: From Beginning to Professional
       <topic>XML</topic>
      <publisher>Wiley</publisher></book>
     <book>XML in a Nutshell
     <publisher>Oreilly</publisher</book>
     <book>XSLT 2.0: Programmer's Reference
     <topic>XML</topic>
     <publisher>Wrox</publisher>
     </book>
     </bookshelf>

XSLT:

<xsl:template match="bookshelf">

       <xsl:if test="contains(//book/*, 'XML')">
           <xsl:apply-templates/>
       </xsl:if>
      <xsl:if test="contains(//topic/*, 'XML')">
         <xsl:apply-templates/>
     </xsl:if>
</xsl:template>


What happened is really weird. If I had commented out the 2nd <xsl:if> statement, it brings back one line without error. When I got to the 2nd one, it tells me this error: Description: A sequence of more than one item is not allowed as the first argument of contains() ("", "", ...)


My document is obviously well-formed, can anyone please give me some suggestions on how to get rid of this error?

Thanks to those who can help.

Alice


Alice Wei MIS 2008 School of Library and Information Science Indiana University Bloomington

Current Thread