Hi,

************************************************
Below is my xml code

<?xml version="1.0" encoding="UTF-8"?>
<concept><title>TEST</title><body><title>CHECKING</title></body></concept>

************************************************
Below is my xslt code

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">

<xsl:template match="/">
	<xsl:for-each select="concept">
		<xsl:variable name="filename1"><xsl:value-of select="base-uri()" /></xsl:variable>
		<xsl:value-of select="$filename1" />
	</xsl:for-each>
</xsl:template>

</xsl:stylesheet>

************************************************
Getting output
D:\test\Checking.dita

Instead of this it should display only
"Checking"
************************************************

Scenario

1] I need file name to generate the HTML file.
2] Level of folder may vary. [File should be in any folder on drive.]

Please suggest.

Cheers,
Mahesh

Hi Everybody,

I tried lot and finally get the solution for the same.

Which give the exact name of file.
Also it full fills the my condition
1] Level of folder may vary. [File should be in any folder on drive.]

please see modified code below...

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">


<xsl:template match="/">
<xsl:text><![CDATA[
]]>
</xsl:text>
<test><xsl:text><![CDATA[
	]]>
</xsl:text>
<xsl:for-each select="concept">
		<xsl:variable name="filename1"><xsl:value-of select="base-uri()" /></xsl:variable>
		<p><xsl:call-template name="name">
				<xsl:with-param name="id"><xsl:value-of select="$filename1" /></xsl:with-param>
			</xsl:call-template>
		</p>
	</xsl:for-each>
<xsl:text><![CDATA[
]]></xsl:text>
</test>
</xsl:template>

<xsl:template name="name">
	<xsl:param name="id" />
	<xsl:choose>
		<xsl:when test="$id[contains(.,'\')]">
			<xsl:call-template name="name"><xsl:with-param name="id"><xsl:value-of select="substring-after($id, '\')" /></xsl:with-param></xsl:call-template>
		</xsl:when>
		<xsl:otherwise>
			<xsl:value-of select="substring-before($id, '.')" />
		</xsl:otherwise>
	</xsl:choose>

</xsl:template>
</xsl:stylesheet>

If anyone has another idea on this please suggest.

Thanks.

Cheers,
Mahesh:)

Hey there!

Try this:

<xsl:template name="getFileNameOfXML">      
  <xsl:variable name="tokenized"><xsl:value-of select="tokenize(base-uri(), '/')[last()]"/></xsl:variable>
  <xsl:value-of select="$tokenized"/>
</xsl:template>

Regards

Xeyem

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.