Link to home
Start Free TrialLog in
Avatar of gudii9
gudii9Flag for United States of America

asked on

xslt ID example

Hi,

I am working on below example
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="class.xsl"?>
<class>
	<student id="1">Jack</student>
	<student id="2">Harry</student>
	<student id="3">Rebecca</student>
	<teacher id="1">Mr. Bean</teacher>
</class>

Open in new window

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="class.xsl"?>
<class>
	<student>Jack</student>
	<student>Harry</student>
	<student>Rebecca</student>
	<teacher>Mr. Bean</teacher>
</class>

Open in new window

i got output
<html>
<body>
<p>1 -
    Jack</p>
<p>2 -
    Harry</p>
<p>3 -
    Rebecca</p>
</body>
</html>


XSLT needs to be read top to bottom or bottom up or does not matter how i read?

what it means by . in bottom select while matching the nodes characteristics??

<xsl:template match="student">
    <p>
    <xsl:value-of select="."/>
    </p>
</xsl:template>

please advise
Avatar of gurpsbassi
gurpsbassi
Flag of United Kingdom of Great Britain and Northern Ireland image

XSLT needs to be read top to bottom or bottom up or does not matter how i read?
You haven't posted your XSL file so can't comment.

what it means by . in bottom select while matching the nodes characteristics??

The dot means take the value of the current context node.
Avatar of gudii9

ASKER

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="class">
    <html>
    <body>
    <xsl:apply-templates select="student"/>
    </body>
    </html>
</xsl:template>
<xsl:template match="student">
    <p>
	<xsl:value-of select="@id"/> - 
    <xsl:value-of select="."/> 
    </p>
</xsl:template>
</xsl:stylesheet>

Open in new window

sorry i missed xsl
Avatar of gudii9

ASKER

<xsl:template match="class"//does it takes always xpath relative or absolute??

    <xsl:apply-templates select="student"//does it takes always xpath relative or absolute??
please advise
Avatar of Gertone (Geert Bormans)
match attribute will always be a description so it is neither absolute or relative

select will always be relative

so in this example
- class will match any <class/> in the document, whenever the class is pushed to the XSLT processor
- student will we relative to the current context = class
The order of templates does not matter, as I explained in your other question a couple of times
The XSLT is NOT read top to bottom, the XSLT execution depends on the data
So it is the XML that drives the XSLT, not the other way round

There is one exception as I explained before:
if you have two templates that match a node with the same priority,
you will get a warning, but most processors take the last matching template
But that is an ambuguity. You should NOT rely on that behaviour
and avoid that to happen at all cost
Avatar of gudii9

ASKER

match attribute will always be a description so it is neither absolute or relative
can i give any description

instead of
<xsl:template match="class"

can i say

<xsl:template match="abc"
You can, but it will only match something if you have an element "abc" (and you push that element to the processor)
Avatar of gudii9

ASKER

so it i s element description. i got it
Avatar of gudii9

ASKER

so the entire xml is scanned to see what are different element descriptions are there and then if they are match are not with what is defined in the xslt for both below statements?

<xsl:template match="class">

<xsl:template match="student">

who does this job?

java run time?
ASKER CERTIFIED SOLUTION
Avatar of Gertone (Geert Bormans)
Gertone (Geert Bormans)
Flag of Belgium image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of gudii9

ASKER

<?xml version="1.0" encoding="UTF-8"?>
<catalog>
	<cd>
		<title>Empire Burlesque</title>
		<artist>Bob Dylan</artist>
		<country>USA</country>
		<company>Columbia</company>
		<price>10.90</price>
		<year>1985</year>
	</cd>
	<cd>
		<title>Hide your heart</title>
		<artist>Bonnie Tyler</artist>
		<country>UK</country>
		<company>CBS Records</company>
		<price>9.90</price>
		<year>1988</year>
	</cd>
	<cd>
		<title>Greatest Hits</title>
		<artist>Dolly Parton</artist>
		<country>USA</country>
		<company>RCA</company>
		<price>9.90</price>
		<year>1982</year>
	</cd>
	<cd>
		<title>Still got the blues</title>
		<artist>Gary Moore</artist>
		<country>UK</country>
		<company>Virgin records</company>
		<price>10.20</price>
		<year>1990</year>
	</cd>
	<cd>
		<title>Eros</title>
		<artist>Eros Ramazzotti</artist>
		<country>EU</country>
		<company>BMG</company>
		<price>9.90</price>
		<year>1997</year>
	</cd>
	<cd>
		<title>One night only</title>
		<artist>Bee Gees</artist>
		<country>UK</country>
		<company>Polydor</company>
		<price>10.90</price>
		<year>1998</year>
	</cd>
	<cd>
		<title>Sylvias Mother</title>
		<artist>Dr.Hook</artist>
		<country>UK</country>
		<company>CBS</company>
		<price>8.10</price>
		<year>1973</year>
	</cd>
	<cd>
		<title>Maggie May</title>
		<artist>Rod Stewart</artist>
		<country>UK</country>
		<company>Pickwick</company>
		<price>8.50</price>
		<year>1990</year>
	</cd>
	<cd>
		<title>Romanza</title>
		<artist>Andrea Bocelli</artist>
		<country>EU</country>
		<company>Polydor</company>
		<price>10.80</price>
		<year>1996</year>
	</cd>
	<cd>
		<title>When a man loves a woman</title>
		<artist>Percy Sledge</artist>
		<country>USA</country>
		<company>Atlantic</company>
		<price>8.70</price>
		<year>1987</year>
	</cd>
	<cd>
		<title>Black angel</title>
		<artist>Savage Rose</artist>
		<country>EU</country>
		<company>Mega</company>
		<price>10.90</price>
		<year>1995</year>
	</cd>
	<cd>
		<title>1999 Grammy Nominees</title>
		<artist>Many</artist>
		<country>USA</country>
		<company>Grammy</company>
		<price>10.20</price>
		<year>1999</year>
	</cd>
	<cd>
		<title>For the good times</title>
		<artist>Kenny Rogers</artist>
		<country>UK</country>
		<company>Mucik Master</company>
		<price>8.70</price>
		<year>1995</year>
	</cd>
	<cd>
		<title>Big Willie style</title>
		<artist>Will Smith</artist>
		<country>USA</country>
		<company>Columbia</company>
		<price>9.90</price>
		<year>1997</year>
	</cd>
	<cd>
		<title>Tupelo Honey</title>
		<artist>Van Morrison</artist>
		<country>UK</country>
		<company>Polydor</company>
		<price>8.20</price>
		<year>1971</year>
	</cd>
	<cd>
		<title>Soulsville</title>
		<artist>Jorn Hoel</artist>
		<country>Norway</country>
		<company>WEA</company>
		<price>7.90</price>
		<year>1996</year>
	</cd>
	<cd>
		<title>The very best of</title>
		<artist>Cat Stevens</artist>
		<country>UK</country>
		<company>Island</company>
		<price>8.90</price>
		<year>1990</year>
	</cd>
	<cd>
		<title>Stop</title>
		<artist>Sam Brown</artist>
		<country>UK</country>
		<company>A and M</company>
		<price>8.90</price>
		<year>1988</year>
	</cd>
	<cd>
		<title>Bridge of Spies</title>
		<artist>T`Pau</artist>
		<country>UK</country>
		<company>Siren</company>
		<price>7.90</price>
		<year>1987</year>
	</cd>
	<cd>
		<title>Private Dancer</title>
		<artist>Tina Turner</artist>
		<country>UK</country>
		<company>Capitol</company>
		<price>8.90</price>
		<year>1983</year>
	</cd>
	<cd>
		<title>Midt om natten</title>
		<artist>Kim Larsen</artist>
		<country>EU</country>
		<company>Medley</company>
		<price>7.80</price>
		<year>1983</year>
	</cd>
	<cd>
		<title>Pavarotti Gala Concert</title>
		<artist>Luciano Pavarotti</artist>
		<country>UK</country>
		<company>DECCA</company>
		<price>9.90</price>
		<year>1991</year>
	</cd>
	<cd>
		<title>The dock of the bay</title>
		<artist>Otis Redding</artist>
		<country>USA</country>
		<company>Atlantic</company>
		<price>7.90</price>
		<year>1987</year>
	</cd>
	<cd>
		<title>Picture book</title>
		<artist>Simply Red</artist>
		<country>EU</country>
		<company>Elektra</company>
		<price>7.20</price>
		<year>1985</year>
	</cd>
	<cd>
		<title>Red</title>
		<artist>The Communards</artist>
		<country>UK</country>
		<company>London</company>
		<price>7.80</price>
		<year>1987</year>
	</cd>
	<cd>
		<title>Unchain my heart</title>
		<artist>Joe Cocker</artist>
		<country>USA</country>
		<company>EMI</company>
		<price>8.20</price>
		<year>1987</year>
	</cd>
</catalog>

Open in new window


<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/cd/title">
  <html>
  <body>
    <h2>My CD Collection</h2>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th>Title</th>
        <th>Artist</th>
      </tr>
      <tr>
        <td>.</td>
        <td>.</td>
      </tr>
    </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

Open in new window


how to display only the title here
http://www.w3schools.com/xsl/xsl_templates.asp
http://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&xsltfile=cdcatalog_ex1
I consider this a new question. Accepted questions land in the archive for future reference. Please kerp questions concise and usefull. Time to accept my responses here and post a new question
I gave you a reference to a book. Please use that book and its examples first. W3schools is a very poor learning resource... It is an ok reference, not a good tutorial
Avatar of gudii9

ASKER

sure will open new question