How to get exact xml file name

Please support our XML, XSLT and XPATH advertiser: Intel Parallel Studio Home
Thread Solved

Join Date: Oct 2008
Posts: 20
Reputation: mlohokare is an unknown quantity at this point 
Solved Threads: 0
mlohokare mlohokare is offline Offline
Newbie Poster

How to get exact xml file name

 
0
  #1
Dec 10th, 2008
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
Reply With Quote Quick reply to this message  
Join Date: Oct 2008
Posts: 20
Reputation: mlohokare is an unknown quantity at this point 
Solved Threads: 0
mlohokare mlohokare is offline Offline
Newbie Poster

Re: How to get exact xml file name

 
0
  #2
Dec 10th, 2008
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
Reply With Quote Quick reply to this message  
Reply

This thread has been marked solved.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC