This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Using name() with XPath expressions (fwd)
- To: xsl-list at lists dot mulberrytech dot com
- Subject: [xsl] Using name() with XPath expressions (fwd)
- From: Jenny Simpson <simpson at cs dot utah dot edu>
- Date: Fri, 13 Jul 2001 22:31:11 -0600
- Reply-To: xsl-list at lists dot mulberrytech dot com
Dear all,
I am using the following piece of code (thanks to Michael Kay) to
convert a string value to the name of a text node. Then I extract the
text contained in that node and use it in a comparison statement.
<xsl:for-each select="bibliography/bibitem">
<xsl:if test="$search = *[name() = $field]">
<xsl:call-template name="printBib" />
</xsl:if>
</xsl:for-each>
Typically, $field contains something like 'year', in which case the
comparison works fine. Here's the xml:
<bibitem type="book" label="har91">
<author>
<firstname>R.</firstname>
<middlename>M.</middlename>
<lastname>Haralick</lastname>
</author>
<author>
<firstname>L.</firstname>
<middlename>G.</middlename>
<lastname>Shapiro</lastname>
</author>
<year>1991</year>
<title>Computer and Robot Vision</title>
<volume>2</volume>
<publisher>Addison-Wesley</publisher>
</bibitem>
The problem is that if the variable $field contains the path of a text
node instead of the name itself, the name function doesn't work. For
example, if $field contains 'author/lastname', the name function assumes
that 'author/lastname' is the string value of the name of a node instead
of the path to a node. How do I alter this comparison so that it works
with $field values that are paths as well as field values that are
names? Thanks in advance.
Jenny Simpson
Sci Institute
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list