| Autore |
Discussione  |
|
|
cohiba86
Nuovo Utente
|
Inserito il - 12/09/2009 : 14:08:52
|
ragazzi,qualcuno saprebbe risolvere questo esercizio?
-REALIZZARE MEDIANTTE TRASFORMAZIONE XSLT(cognomenome.xsl) UN DOCUMENTO XHTML( cognomenome.htm) A PARTIRE DALLA RISORSA studenti.xml,DI SEGUITO PRESENTATA, CHE VISUALIZZI: 1)PER OGNI STUDENTE IL PRIMO RISULTATO PRESENTE IN RISULTATI. 2)L'ELENCO DI TUTTI GLI STUDENTI CHE ANNOVERANO COME DISCIPLINA UN ARGOMENTO CHE CONTENGA LA PAROLA CHIAVE XML. 3)TUTTI GLI STUDENTI CHE ABBIANO ALMENO UN RISULTATO. 4)L'ELENCO DI TUTTI GLI STUDENTI CON IL VALORE DI ETA MAGGIORE O UGUALE A 20.
DOCUMENTO ISTANZA studenti.xml
<studenti> <studente id="100026"> <nome>...</nome> <eta>21</eta> <disciplina>biologia</disciplina> <risultati> <risultato corso="Matematica 1" voto="C"/> <risultato corso="Matematica 2" voto="D"/> </risultati> </studente> </studenti>
(di studente ne ho inserito solo uno,ma ce ne sarebbero altri)
Potreste darmi una mano gentilmente. GRAZIE INFINITE
|
Modificato da - cohiba86 in Data 12/09/2009 14:10:10
|
|
|
ciccio007
Utente medio
 

|
Inserito il - 12/09/2009 : 17:45:34
|
Ecco qua:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.1"> <xsl:template match="/"> <html> <head> <title>Esercizio 3 - Appello 3</title> </head> <body> Punto 1: I primi risultati di ogni studente sono: <ul> <xsl:for-each select="/studenti/studente"> <li><xsl:value-of select="risultati[1]/risultato/@corso"/></li> </xsl:for-each> </ul> Punto 2: Gli studente che contengono una disciplina con la parola XML sono: <ul> <xsl:for-each select="/studenti/studente/disciplina"> <xsl:if test="contains(., 'XML')"> <li><xsl:value-of select="../nome"/></li> </xsl:if> </xsl:for-each> </ul> Punto 3: Gli studenti che hanno ottenuto almeno un risultato sono:<ul> <xsl:for-each select="/studenti/studente/risultati"> <xsl:if test="count(risultato) >=1"> <li><xsl:value-of select="../nome"/></li> </xsl:if> </xsl:for-each> </ul> Punto 4: Gli studenti con eta' maggiore o uguale a 20:<ul> <xsl:for-each select="/studenti/studente"> <xsl:if test="eta >= 20"> <li><xsl:value-of select="nome"/></li> </xsl:if> </xsl:for-each> </ul> </body> </html> </xsl:template>
</xsl:stylesheet> |
 |
|
|
cohiba86
Nuovo Utente
|
Inserito il - 14/09/2009 : 09:31:06
|
grazie mille,sei stato gentilissimo
|
 |
|
|
geipi
Utente medio
 

Regione: Puglia
Prov.: Taranto
Città: Massafra
|
Inserito il - 14/09/2009 : 11:24:16
|
Ragazzi, qualcuno di voi ha fatto l'esame il 9 settembre? Se si, gentilmente mi potete dire gli esercizi che stavano? Grazie!!! |
 |
|
|
peppe6387_g
Utente medio
 
|
Inserito il - 16/09/2009 : 11:27:08
|
Mi potreste spiegare una semplicissima cosa? Ho creato il seguente file xsl (terra.xsl):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.1"> <xsl:template match="/"> <html> <head> <title>Esercizio</title> </head> <body>
Montagne più alte di 5500m<ul> <xsl:for-each select="/terra/mountain"> <xsl:if test="height >= 5500"> <li><xsl:value-of select="name"/></li> <li><xsl:value-of select="count(terre/mountain)"/></li> </xsl:if> </xsl:for-each> </ul> </body> </html> </xsl:template>
</xsl:stylesheet>
che preleva dal seguente file terra.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="file:///C:/Documents%20and%20Settings/Giuseppe%20Matera/Desktop/terra.xsl"?> <terra> <mountain id='mount-Meru' name='Meru' longitude='6.8' latitude='-3.2' height='4567'> <located country_code='EAT' province_id='EAT'/> </mountain> </terra> ..... ..... La domanda è questa: Perchè dopo la trasformazione con exc le montagne superiori di 5500 non mi vengono visualizzate?, dove ho sbagliato? Un' altra piccola cosa, per contare voglio usare count(ns), ma anche quello mi da problemi.
Ringrazio infinitamente chi mi sa dare una risposta
|
 |
|
|
ciccio007
Utente medio
 

|
Inserito il - 16/09/2009 : 12:11:54
|
Dal file xml che hai postato,e dall'assenza di tag in presenza di latitude,height e vari,presumo che quelli siano attributi quindi devi lavorare sugli attributi. Poi non ho capito perchè hai fatto <li><xsl:value-of select="count(terre/mountain)"/></li>,cioè non esiste il path terre/mountain soprattutto perchè dopo mountain ci sono solo attributi e non elementi annidati come "terre" (e semanticamente avrebbe poco senso). Quindi devi rivedere un po' tutto da capo.
ps. per accedere ad un attributo devi fare path/@attributo |
 |
|
|
peppe6387_g
Utente medio
 
|
Inserito il - 16/09/2009 : 12:25:57
|
Quella del count era una prova fatta più di disperazione che di logica. Invece non ho capito bene come riuscire a prelevare l'attributo name delle montagne con height > di 5500. Ho fatto questa prova ma non funziona:
<xsl:for-each select="/terra/mountain/name[@height>5500]"> |
 |
|
|
Mk178
Moderatore ITPS
  

Regione: Puglia
Prov.: Bari
|
Inserito il - 16/09/2009 : 12:39:09
|
Citazione: Messaggio inserito da peppe6387_g
Quella del count era una prova fatta più di disperazione che di logica. Invece non ho capito bene come riuscire a prelevare l'attributo name delle montagne con height > di 5500. Ho fatto questa prova ma non funziona:
<xsl:for-each select="/terra/mountain/name[@height>5500]">
scusa, se hai detto ke name è un attributo, non dovrebbe essere così: <xsl:for-each select="/terra/mountain/@name[@height>5500]">
se non và, prova anke così:
<xsl:for-each select="/terra/mountain/@name[./@height>5500]">
e così:
<xsl:for-each select="/terra/mountain/@name[../@height>5500]"> |
PER ESSERE SEMPRE AGGIORNATI Sottoscriviti alla discussione ITPS/Generale/INFORMAZIONI (NON postate in questo topic le vostre richieste) Oppure Iscriviti al gruppo su Facebook Informatica T.P.S. Bari
EX-Rappresentante LINK - udu: C. Facoltà di Scienze MM.FF.NN. & C. Corso di Laurea di Informatica TPS
|
 |
|
|
peppe6387_g
Utente medio
 
|
Inserito il - 16/09/2009 : 13:00:40
|
Sto impazzendo nn va con nessuno dei 3. Se non vi do tanto disturbo, potreste postarmi la soluzione, così magari posso controllare dove effettivamente sbaglio, e capire finalmente come ci si comporta con gli attributi, visto che le slide del prof sono, forse troppo, sintetiche. Vi ringrazio infinitamente. |
 |
|
|
ciccio007
Utente medio
 

|
Inserito il - 16/09/2009 : 16:35:46
|
Citazione: Messaggio inserito da peppe6387_g
Quella del count era una prova fatta più di disperazione che di logica. Invece non ho capito bene come riuscire a prelevare l'attributo name delle montagne con height > di 5500. Ho fatto questa prova ma non funziona:
<xsl:for-each select="/terra/mountain/name[@height>5500]">
Con questa prova non funziona perchè name lo richiami come un elemento e non come attributo.Per richiamarlo come attributo devi fare @attributo. Quindi: <xsl:for-each select="/terra/mountain/"> <xsl:if test="@height >= 5500"> <xsl:value-of select="@name"/> fine if e fine for
A rigor di logica dovrebbe essere cosi prova. |
 |
|
|
Verci
Utente giovane

|
Inserito il - 16/09/2009 : 18:12:05
|
Ecco il codice funzionante:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" omit-xml-declaration="no"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN">
</xsl:output>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<xsl:element name="head">
<xsl:element name="meta">
<xsl:attribute name="http-equiv"><xsl:text>content-type</xsl:text></xsl:attribute>
<xsl:attribute name="content"><xsl:text>text/html; charset=UTF-8</xsl:text></xsl:attribute>
</xsl:element>
<xsl:element name="title">Le montagne più alte</xsl:element>
</xsl:element>
<xsl:element name="body">
<xsl:element name="div">
<xsl:text>Montagne più alte di 5500 m: </xsl:text>
<xsl:value-of select="count(//mountain[.//@height>5500])" />
</xsl:element>
<xsl:element name="ul">
<xsl:for-each select="//mountain">
<xsl:sort select="@height" order="ascending" />
<xsl:if test=".//@height>5500">
<xsl:element name="li">
<xsl:element name="td"><xsl:value-of select="@name" /></xsl:element>
</xsl:element>
</xsl:if>
</xsl:for-each>
</xsl:element>
</xsl:element>
</html>
</xsl:template>
</xsl:stylesheet>
|
 |
|
|
Verci
Utente giovane

|
Inserito il - 16/09/2009 : 18:13:33
|
Ecco il codice funzionante:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" omit-xml-declaration="no"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN">
</xsl:output>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<xsl:element name="head">
<xsl:element name="meta">
<xsl:attribute name="http-equiv"><xsl:text>content-type</xsl:text></xsl:attribute>
<xsl:attribute name="content"><xsl:text>text/html; charset=UTF-8</xsl:text></xsl:attribute>
</xsl:element>
<xsl:element name="title">Le montagne più alte</xsl:element>
</xsl:element>
<xsl:element name="body">
<xsl:element name="div">
<xsl:text>Montagne più alte di 5500 m: </xsl:text>
<xsl:value-of select="count(//mountain[.//@height>5500])" />
</xsl:element>
<xsl:element name="ul">
<xsl:for-each select="//mountain">
<xsl:sort select="@height" order="ascending" />
<xsl:if test=".//@height>5500">
<xsl:element name="li">
<xsl:element name="td"><xsl:value-of select="@name" /></xsl:element>
</xsl:element>
</xsl:if>
</xsl:for-each>
</xsl:element>
</xsl:element>
</html>
</xsl:template>
</xsl:stylesheet>
|
 |
|
|
peppe6387_g
Utente medio
 
|
Inserito il - 16/09/2009 : 18:29:51
|
| Grazie tante DAVVERO. |
 |
|
|
peppe6387_g
Utente medio
 
|
Inserito il - 17/09/2009 : 10:57:35
|
Ragazzi una domanda un po stupida se volete, ma non riesco a cui non riesco a dare una risposta. Cosa significa: Si realizzi un foglio di stile <cognome nome-matricola>.xsl, a partire dal template terra.xsl. |
 |
|
|
peppe6387_g
Utente medio
 
|
Inserito il - 17/09/2009 : 11:33:30
|
Logicamente il .XSL scritto sopra è un esempio, la mia domanda è più generale, che riguarda anche i casi dove il prof dice di partire da un file template.html.
Grazie ancora |
 |
|
| |
Discussione  |
|