This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Contains(@href. '/') returns false




Dear all,

Following the previous posting of recursive template to find file name from 
long file path, using following syntex, I get the full path in stead of 
expected filename only. Is it the bug somewhere?
***********
test.xml
************
<?xml version="1.0" encoding="UTF-8" ?>

<!-- Created by npatel on 08 March 2002, 09:06 -->

<test>
	<test_string 
href="h:/rcs/product/src/software/xml/pml/unit_tests/xml_data/storage.xml#xpointer(//*)" 
/>
</test>

**********
test.xsl
*********
<?xml version="1.0" encoding="UTF-8" ?>

<!--
    Document   : real_partitions.xsl
    Created on : 27 February 2002
    Author     : npatel
    Comment
        purpose of transformation follows.
-->

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
    xmlns:fo="http://www.w3.org/1999/XSL/Format";>

		<xsl:template name="lastIndexOf">
   <!-- declare that it takes two parameters - the string and the char -->
   <xsl:param name="string" />
   <xsl:param name="char" />
   <xsl:choose>
      <!-- if the string contains the character... -->
      <xsl:when test="contains($string, $char)">
         <!-- call the template recursively... -->
         <xsl:call-template name="lastIndexOf">
            <!-- with the string being the string after the character
                 -->
            <xsl:with-param name="string"
                            select="substring-after($string, $char)" />
            <!-- and the character being the same as before -->
            <xsl:with-param name="char" select="$char" />
         </xsl:call-template>


      </xsl:when>
      <!-- otherwise, return the value of the string -->
      <xsl:otherwise><xsl:value-of select="concat($string, $char)"/> 
</xsl:otherwise>
   </xsl:choose>

	 <!--xsl:value-of select="$string" /-->
</xsl:template>

    <xsl:template match="test">
			<html>
			<head>
				<title>Test of Strings</title>
			</head>
			<body>
			<xsl:for-each select="test_string">
				<xsl:variable name="file">
					<xsl:call-template name="lastIndexOf">
						<xsl:with-param name="string" select="substring-before(@href, '#')" />
							<xsl:with-param name="char" select="/" />
				</xsl:call-template>

				</xsl:variable>
				<xsl:value-of select="$file"/>

			</xsl:for-each>
			</body>
		</html>
  </xsl:template>

	</xsl:stylesheet>

*************
test.html
*************
<html xmlns:fo="http://www.w3.org/1999/XSL/Format";>
<head>
<title>Test of Strings</title>
</head>
<body>h:/rcs/product/src/software/xml/pml/unit_tests/xml_data/storage.xml

</body>
</html>

Following the syntax I should get only <body>storage.xml</body>
in output.

If anyone has faced the same situation then please respond.#

Thnaks

Nilesh

_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp.


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]