I agree with the other respondents: apart from giving an error if the context 
item is not a node, "./." is precisely equivalent to ".".

(Not sure why an XSLT question is appearing on the XQuery list...)

There's a certain fondness for verbosity in some parts of the XSLT user 
community. It's quite common to see "./price" where "price" would serve 
perfectly well, or "price/text()" for "price"; or xsl:element and xsl:attribute 
used where literal result elements would do the job, or (my favourite gripe)

<xsl:variable name="x">
  <xsl:value-of select="count(y)"/>
</xsl:variable>

where <xsl:variable name="x" select="count(y)"/> would serve the purpose better.

And of course we've all seen things like <xsl:if test="contains(x, y) = 
true()">. 

I think some XSLT programmers must be paid by the yard; alternatively the 
language attracts those who love the sourd of their own keyboard. But "./." 
isn't an expansion I have seen before.

Michael Kay
Saxonica

> On 31 Oct 2016, at 16:52, Schwartz, Christine <[email protected]> 
> wrote:
> 
> Hi,
> 
> I'm hoping someone on this list can clarify my conundrum.
> 
> I'm working with a colleague on a writing project and one of his examples 
> uses this XPath syntax "./." in the starts-with() function within an XSLT 
> stylesheet. I don't know what "./." means. I would think that "." alone would 
> be sufficient to refer to the context node.
> 
> Here's the example: 
> 
> <xsl:for-each select="//dim:field">
>    <xsl:if test="./@element='title'">
>       <xsl:choose>
>          <xsl:when test="starts-with(./.,'The ')">
>                <datafield tag="245" ind1="1" ind2="4">
>                       <subfield code="a"><xsl:value-of 
> select="."/>.</subfield>
>                </datafield>
>          </xsl:when>
>          <xsl:when test="starts-with(./.,'An ')">
>                <datafield tag="245" ind1="1" ind2="3">
>                       <subfield code="a"><xsl:value-of 
> select="."/>.</subfield>
>                </datafield>
>          </xsl:when>
>          <xsl:when test="starts-with(./.,'A ')">
>                <datafield tag="245" ind1="1" ind2="2">
>                       <subfield code="a"><xsl:value-of 
> select="."/>.</subfield>
>                </datafield>
>          </xsl:when>
>          <xsl:otherwise>
>               <datafield tag="245" ind1="1" ind2="0">
>                     <subfield code="a"><xsl:value-of select="."/>.</subfield>
>               </datafield>
> Thanks, 
> 
> Chris
> 
> Christine Schwartz
> Metadata Librarian and XML Database Administrator
> Princeton Theological Seminary
> Library
> P.O. Box 821
> Princeton, NJ 08542
> [email protected]
> (609) 497-7938
> 
> 
> 
> _______________________________________________
> [email protected]
> http://x-query.com/mailman/listinfo/talk



_______________________________________________
[email protected]
http://x-query.com/mailman/listinfo/talk

Reply via email to