cancel
Showing results for 
Search instead for 
Did you mean: 

XSLT code giving emplty output

Former Member
0 Kudos

Hi ,

i am a beginer in XSLT. when i execute the code i am getting emplty structure.

Can anyone point out what is missing in my code, are the xpath expressions correct??



input Xml  will look as below

<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_XSLT_Source xmlns:ns0="http://XYZ.com/gen">
	<Person>
		<FirstName>James</FirstName>
		<LastName>Bond</LastName>
		<Gender>Male</Gender>
		<Address>
			<Street>6B</Street>
			<Houseno>bbbb</Houseno>
			<City>AAAA</City>
		</Address>
	</Person>
</ns0:MT_XSLT_Source>


my output should be...

<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_XSLT_Target xmlns:ns0="http://XYZ.com/Gen">
      <Title>Male</Title>
     <Name> James Bond</Name>
      <Street> 6B bbbb</Street>
      <City>AAA</City>
</ns0:MT_XSLT_Target>

my XSLT code is as below .. ( i think the xpath's are not executing)



<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://XYZ.com/Gen">
	<xsl:template match="/">
		<ns0:MT_XSLT_Target>
			<Title>
				<xsl:value-of select="/ns0:MT_XSLT_Source/Person/FirstName"/>
 ( i doubt issue is in xpath??)
			</Title>
			<Name>
				<xsl:value-of select="concat(concat(ns0:MT_XSLT_Source/Person/FirstName,' '),
				 Person/LastName)"/>
			</Name>
			<Street>
				<xsl:value-of select="concat(concat(ns0:MT_XSLT_Source/Person/Address/Houseno,' '),ns0:MT_XSLT_Source/Person/Address/Street)"/>
			</Street>
			<City>
				<xsl:value-of select="ns0:MT_XSLT_Source/Person/Address/City"/>
			</City>
		</ns0:MT_XSLT_Target>
	</xsl:template>
</xsl:stylesheet>



Edited by: sam kumar on Aug 31, 2010 2:37 PM

Accepted Solutions (1)

Accepted Solutions (1)

i827647
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi, take this code:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://XYZ.com/gen">
	<xsl:template match="/">
		<ns0:MT_XSLT_Target>
			<Title>
				<xsl:value-of select="ns0:MT_XSLT_Source/Person/FirstName"/>
			</Title>
			<Name>
				<xsl:value-of select="concat(concat(ns0:MT_XSLT_Source/Person/FirstName,' '),
				 Person/LastName)"/>
			</Name>
			<Street>
				<xsl:value-of select="concat(concat(ns0:MT_XSLT_Source/Person/Address/Houseno,' '),ns0:MT_XSLT_Source/Person/Address/Street)"/>
			</Street>
			<City>
				<xsl:value-of select="ns0:MT_XSLT_Source/Person/Address/City"/>
			</City>
		</ns0:MT_XSLT_Target>
	</xsl:template>
</xsl:stylesheet>

I Just change the xmlns:ns0="http://XYZ.com/Gen" to xmlns:ns0="http://XYZ.com/gen"

Regards,

Edson Thomaz

Former Member
0 Kudos

Hi Edson, thanks . ur code is working....

the reson it was not working was....\

my input xml namespace was given as xmlns:ns0="http://XYZ.com/gen and in my XSLT code i was referring the namespace

xmlns:ns0="http://XYZ.com/Gen.. wow.... very stupid mistake...

Edited by: sam kumar on Sep 1, 2010 7:37 AM

Former Member
0 Kudos

I think you have just copied the code from Edson's reply but not red his comments... here it is..

I Just change the xmlns:ns0="http://XYZ.com/Gen" to xmlns:ns0="http://XYZ.com/gen"

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi,

Use this:

1) <Title>

<xsl:value-of select="ns0:MT_XSLT_Source/Person/FirstName"/>

</Title>

2)

<Name>

<xsl:value-of select="concat(concat(ns0:MT_XSLT_Source/Person/FirstName,' '), ns0:MT_XSLT_Source/Person/LastName)"/>

</Name>

rajasekhar_reddy14
Active Contributor
0 Kudos

Hi Sam,

Youy missed XSL output statement in your code..

<xsl:output method="xml" version="1.0",.

Regards,

raj

Edited by: Raja Sekhar Reddy T on Aug 31, 2010 2:45 PM

Former Member
0 Kudos

i have added, but still i am getting empty XML


<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_XSLT_Target xmlns:ns0="http://XYZ.com/Gen">
	<Title></Title>
	<Name> </Name>
	<Street> </Street>
	<City></City>
</ns0:MT_XSLT_Target>