------------js-----------------
----------1--najduze ime------------
<script>
var ime;
var NajduzeIme;
var brojac = 0;
do {
ime = prompt("Unesite Ime: ", "");
if (brojac < ime.length) {
NajduzeIme=ime;
}
} while (confirm("Ponovi?"));
alert("NAJDUZE IME\n -------- \n" + NajduzeIme);
</script>
-----------------------2---dodaj link više----------------
<script>
$(function () {
$('p').append('</br><a href="#">Više...</a>');
});
</script>
-----------------3---prebroji elemente htmla----------------
<script>
$(function () {
var h2 = $('h2').length;
var linkovi = $('p a').length;
var ms = $('.MS').length;
$('#h2').html(h2);
$('#vise').html(linkovi);
$('#ms').html(ms);
})
</script>
-----------------------------4 --unos ispit osoba-------------------------------------
<script>//funkcije
function dodajOpciju(txt, val) {
var option = $(document.createElement("option"));
var tekst = $(document.createTextNode(txt));
option.attr("value", val); //ubacujem vrijednost OIB-a kao atribut
option.append(tekst);
return option;
}
//resetiram obrazac
function reset() {
$("#ime, #prezime, #oib").val("");
ime.focus();
$("p").html("");
}
function brojOsoba() {
var broj = document.getElementsByTagName("option").length;
return broj - 1;
}
//globalni dio
$(document).ready(function () {
$("span").html(brojOsoba());
$("#btnDodaj").on('click', function() {
var ime = $("#ime").val();
var prezime = $("#prezime").val();
var oib = $("#oib").val();
//ako nisu unešena sva polja
if (ime == "" || prezime == "" || oib == "") {
var tekst = "Niste unijeli sva polja!";
$("p").html(tekst);
return;
}
var tekstOpcije = ime + ' ' + prezime;
$("select").append(dodajOpciju(tekstOpcije, oib));
reset(); //resetiram obrazac
$("span").html(brojOsoba());
//ispisivanje OIB-a i ostalih podataka
$("select").change(function () {
var val = $(this).val();
var imePrezime = $("select option:selected").text();
var razmak = imePrezime.lastIndexOf(" ");
var imeIspis = imePrezime.substring(0, razmak);
var prezimeIspis = imePrezime.substring(razmak + 1, imePrezime.length);
if(val == 0){
reset();
return;
}
$("#ime").val(imeIspis);
$("#prezime").val(prezimeIspis);
$("#oib").val(val);
});
});//kraj button-a
//dodavanje osoba na tipku enter
$(document).keypress(function (e) {
if (e.which == 13) {
$("#btnDodaj").click();
}
});
});//kraj ready event-a
</script>
/
////////////////////vj13/////////////////////////////////
------------------1zda-------------
<script>
//globalni dio
/*PRIJE SVEGA: PAZITE SI NA SINTAKSU, NEMA INTELISENSA, AKO SJEBEŠ NEGDJE VELIKO ILI MALO
SLOVO, TEŠKO ĆEŠ SI NAĆI GREŠKU, MORATE PAZITI, TU VAM NE MOGU POMOĆI*/
window.onload = ucitajXML; //BEZ ZAGRADA PIŠETE FUNKCIJU
/*nakon učitavanja window-a, pozovi funkciju ucitajXML*/
var imeDatoteke = 'podaci.xml'; //mora biti u globalnom dijelu
//kako bih ju mogao svugdje pozivati
//funckije
function ucitajXML() {
xmlhr = new XMLHttpRequest();
xmlhr.open("GET", imeDatoteke, true);
xmlhr.onreadystatechange = onStateChange; //isto bez zagrade
xmlhr.send();
}
function onStateChange(){
if (xmlhr.readyState == 4) {
prikaziPodatke();
}
}
//do ovoga dijela vam je isto za SVAKI POČETAK KONEKCIJE NA XML FILE
function prikaziPodatke() {
var xmlDom = xmlhr.responseXML; //skraćujete si zapis, u varijablu xmlDom da ne morate non stop pisati xmlhr.responseXML
var cvorOsoba = xmlDom.getElementsByTagName('osoba')[0]; //dohvatio sam čvor osoba iz xml-a
//MORATE IMATI OVU [0] -> JER JE TO PRVI ELEMENT U DOM-u
//dohvaćam sad svu djecu(child-ove) iz tog gore dohvaćenog čvora (cvorOsoba)
var ime = cvorOsoba.getElementsByTagName('ime')[0].firstChild.nodeValue; //cvorKojiSamDohvatio.Element(ime)[0 -> jer se nalazi na 1. mjestu u DOM-u].firstChild (jer je u XML-u sve čvor).nodeValue -> vrijednost
tog čvora (taj tekst što je zapisan unutra)
var prezime = cvorOsoba.getElementsByTagName('prezime')[0].firstChild.nodeValue;
var telefon = cvorOsoba.getElementsByTagName('telefon')[0].firstChild.nodeValue;
//SVUGDJE IDE firstChild jer to i je prvo dijete TOG DOHVAĆENOG ČVORA
//pogledajte u XML, nema niti jednog istoga čvora u tom čvor pod istim imenom, tako da bez problema može ići firstChild
//dohvaćanje atributa iz cvorOsoba iz XML-a
var id = cvorOsoba.attributes[0].value;
//završio sam sa dohvaćanjem podataka iz XML datoteke
//ovdje možete koristiti i jQuery ali moja preporuka je da ga NE koristite jer ćete se ovako bolje ispraksati
var ul = document.getElementsByTagName('ul')[0];
//elementu ul dodajem djecu pozivajuci funkciju dodaj i šaljem parametre
ul.appendChild(dodaj(id));
ul.appendChild(dodaj(ime));
ul.appendChild(dodaj(prezime));
ul.appendChild(dodaj(telefon));
}
//ovo mi je glupo objašnjavati, to fkt trebate već znati
function dodaj(tekst) {
var li = document.createElement('li'); //kreiram element li
var text = document.createTextNode(tekst);
li.appendChild(text);
return li;
}
</script>
-------------2zda-------------
<script>
window.onload = ucitajXML;
var imeDatoteke = 'albumi.xml';
function ucitajXML() {
xmlhr = new XMLHttpRequest();
xmlhr.open('GET', imeDatoteke, true);
xmlhr.onreadystatechange = onChange;
xmlhr.send();
}
function onChange() {
if(xmlhr.readyState == 4){
prikaziPodatke();
}
}
//ovaj gornji dio je ISTI ZA SVE ZADATKE ZA POČETAK XML-a
function prikaziPodatke() {
var xmlDoc = xmlhr.responseXML;
var cvorAlbum = xmlDoc.getElementsByTagName('album'); //nisam stavio [0] jer mi onda FOR petlja nebi radila
//svi elementi dalje unutar cvorAlbum moraju ici unutar for petlje jer ih ima više :)
for (var i = 0; i < cvorAlbum.length; i++) {
//dohvaćam atribute svakog cvorAlbum[i]
var grupa = cvorAlbum[i].attributes[0].value; //attributes[0] -> jer se nalazi na 1. mjestu
var naslov = cvorAlbum[i].attributes[1].value; //[1] -> jer se nalazi na 2. mjestu
//upisivanje u dokument
document.write(dodajGrupu(grupa));
document.write(dodajNaslov(naslov));
//dohvaćanje elemenata pjesma
var pjesme = cvorAlbum[i].getElementsByTagName('pjesma'); //isto nema [0] jer ih ima više i trebam ih sve dohvatiti
//dohvaćam svaku pjesmu i odmah ju pišem u dokument
for (var j = 0; j < pjesme.length; j++) { //mora ići j jer je petlja u petlji
var pjesma = pjesme[j].firstChild.nodeValue; //SPREMAM svaku pjesmu posebno u varijablu pjesma i onda ju odmah zapisujem u dokument (HTML)
document.write(dodajPjesmu(pjesma));
}
/*VAŽNO!!
OVE SVE ELEMENTE KOJE SAM VAM PISAO DA NE MOGU STAVITI [0] JE SA RAZLOGOM!
POGLEDAJTE MALO I SAMI RAZMISLITE ZAŠTO, JER SVAKI PUT U FOR PETLJI STAVIO SAM
(tipa: cvorAlbum[i]) -> TU JE TAJ BROJ KOJI JE FOR PETLJA IZGENERIRALA
TO VAS NEBI TREBALO BUNITI*/
}
}//kraj funkcije prikaziPodatke
//funkcije koje služe samo za sređivanje i lakše zapisivanje Grupa, Naslova i pjesama
function dodajPjesmu(textItem) {
return "Pjesma: "+textItem+"<br/>";
}
function dodajGrupu(textItem) {
return "<br/>Grupa: "+textItem+"<br/>"
}
function dodajNaslov(textItem) {
return "Naslov: " + textItem + "<br/><br/>";
}
</script>
-------------------------------3zda------------------spremanje u tablicu
<script>
window.onload = ucitajXML;
var imeDatoteke = 'studenti.xml';
function ucitajXML() {
xmlhr = new XMLHttpRequest();
xmlhr.open('GET', imeDatoteke, true);
xmlhr.onreadystatechange = onChange;
xmlhr.send();
}
function onChange() {
if (xmlhr.readyState == 4) {
prikaziPodatke();
}
}
function prikaziPodatke() {
//radim tablicu jer postoji šansa da ćemo morati napraviti tablicu preko JS-a a bit će vam lakše ako ju Fulek
//da gotovu u HTML-u, bolje da naučite teži način ;)
var tablica = document.createElement('table');
var tr = document.createElement('tr');
//punim podacima zaglavlje tablice prvi TABLE_ROW (tr) -> hardkodirao sam jer nema drugog načina za to :P
tr.appendChild(dodajTH('ID'));
tr.appendChild(dodajTH('IME'));
tr.appendChild(dodajTH('PREZIME'));
tr.appendChild(dodajTH('OCJENA'));
//trpam prvi tr u tablicu
tablica.appendChild(tr);
console.log(tablica); //provjera jel mi tablica napunjena
//dohvaćam body element i appendam mu tablicu -> tablica je prikazana u HTML-u
var body = document.getElementsByTagName('body')[0];
body.appendChild(tablica);
//$('body').append(tablica); //može i ovako, brže je, al nije na odmat znati ni čisti JS
//započinje onaj dio sa dohvaćanjem podataka iz XMLa
xmlDom = xmlhr.responseXML;
cvorStudent = xmlDom.getElementsByTagName('student');
var zbrojOcjena = 0;
for (var i = 0; i < cvorStudent.length; i++) {
var id = cvorStudent[i].attributes[0].value; //vrijednost atributa
var ime = cvorStudent[i].getElementsByTagName('ime')[0].firstChild.nodeValue;
var prezime = cvorStudent[i].getElementsByTagName('prezime')[0].firstChild.nodeValue;
var ocjena = parseInt(cvorStudent[i].getElementsByTagName('ocjena')[0].firstChild.nodeValue);
zbrojOcjena += ocjena;
//dohvatio sam ih sve, sad ih samo treba pobacat u tablicu
//morao sam napraviti novu varijablu jer mi treba kroz svaki prolaz kroz petlju, novi red u tablici
var tr2 = document.createElement('tr');
//ubacujem vrijednosti u tr2
tr2.appendChild(dodajTD_XML(id));
tr2.appendChild(dodajTD_XML(ime));
tr2.appendChild(dodajTD_XML(prezime));
tr2.appendChild(dodajTD_XML(ocjena));
//dodajem u tablicu taj tr koji sam napunio sa td-ovima
tablica.appendChild(tr2);
}//kraj for petlje
//ispis prosjeka ocjena na kraju tablice
var p = document.createElement('p');
p.appendChild(document.createTextNode('Prosjek ocjena jest: ' + (zbrojOcjena / cvorStudent.length)));
$('body').append(p);
}//kraj prikaziPodatke funkcije
//funkcija za prvi redak -> prvi tr
function dodajTH(textItem) {
var th = document.createElement('th');
var tekst = document.createTextNode(textItem);
th.appendChild(tekst);
return th;
}
//funkcija za td-ove
function dodajTD_XML(textItem) {
var td = document.createElement('td');
var tekst = document.createTextNode(textItem);
td.appendChild(tekst);
return td;
}
</script>
//////////////////------------------isp-------------------
--------------------------------I4 41 avijoni --------------------------------------------
---------------------------------------------------------------------------------------
var avioni = [];
var trenutniAvionIndeks = 0;
// pocetak programa, DOM se ucito
$(function () {
ucitajXml();
$("#prethodni").on("click", function () {
if (trenutniAvionIndeks == 0) {
trenutniAvionIndeks = avioni.length - 1;
} else {
trenutniAvionIndeks--;
}
postaviAvion(avioni[trenutniAvionIndeks]);
});
$("#slijedeci").on("click", function () {
if (trenutniAvionIndeks == avioni.length - 1) {
trenutniAvionIndeks = 0;
} else {
trenutniAvionIndeks++;
}
postaviAvion(avioni[trenutniAvionIndeks]);
});
});
function ucitajXml() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
var avioniXml = xhr.responseXML.documentElement;
for (var i = 0; i < avioniXml.children.length; i++) {
var avion = {}; // novi avion object literal, kao da imamo klasu...
var avionXml = avioniXml.children[i];
// pokupi podatke iz XML-a
avion.oznaka = avionXml.getAttribute("oznaka");
avion.let = avionXml.children[0].innerHTML;
avion.kompanija = avionXml.children[1].children[0].innerHTML;
avion.polazak = avionXml.children[2].innerHTML;
avion.dolazak = avionXml.children[3].innerHTML;
avioni.push(avion);
}
// inicijalno nakon što se XML ucitao postavi prvi avion da se prikaže
postaviAvion(avioni[trenutniAvionIndeks]);
}
};
xhr.open("GET", "avioni.xml", true);
xhr.send();
}
function postaviAvion(avion) {
if ($("table tr").length > 1) { // projeri ako ima više od 1 TRa u tejblu
$("table tr:last-child").remove(); // obriši redak koji predstavlja avion od prije
}
// pripremi pa dodaj redak s podacima o avionu
var letTd = "<td>" + avion.let + "</td>";
var oznakaTd = "<td>" + avion.oznaka + "</td>";
var polazakTd = "<td>" + avion.polazak + "</td>";
var dolazakTd = "<td>" + avion.dolazak + "</td>";
var kompanijaTd = "<td>" + avion.kompanija + "</td>";
// sad fakat dodaj
$("table").append("<tr>" + letTd + oznakaTd + polazakTd + dolazakTd + kompanijaTd + "</tr>");
}
----------------------------------------------------------------------------------
Zadatak 41.
-----------------------------------
/*REFERENCE SU SJEBANE I NEMREM DOBIT JQUERY, TAKO DA FUNKCIJA
$().empty(); -> NE RADI ZBOG TOGA JER NEMREM DOBIT JQUERY,
NISAM PAMETAN KAJ RADIT NA ISPITU
*/
/*Zadatak u JaviScriptu
window.onload = ucitajXML;
var imeDatoteke = 'Zadatak41.xml';
function ucitajXML() {
xmlhr = new XMLHttpRequest();
xmlhr.open('GET', imeDatoteke, true);
xmlhr.onreadystatechange = onChange;
xmlhr.send();
button1 = document.getElementsByTagName('input')[0];
button1.onclick = prviGumb;
button2 = document.getElementsByTagName('input')[1];
button2.onclick = drugiGumb;
button3 = document.getElementsByTagName('input')[2];
button3.onclick = treciGumb;
}
function onChange() {
if (xmlhr.readyState == 4) {
podaci();
}
}
function podaci() {
xmlDom = xmlhr.responseXML;
cvorKolegij = xmlDom.getElementsByTagName('kolegij');
}
function prviGumb() {
reset();
//alert('prvi gumb');
var naziv = cvorKolegij[0].getElementsByTagName('naziv')[0].firstChild.nodeValue;
button1.setAttribute('value', naziv);
var profesor = cvorKolegij[0].getElementsByTagName('nastavnik')[0].firstChild.nodeValue;
var as1 = cvorKolegij[0].getElementsByTagName('asistent')[0].firstChild.nodeValue;
var as2 = cvorKolegij[0].getElementsByTagName('asistent')[1].firstChild.nodeValue;
var ul = document.getElementsByTagName('ul')[0];
ul.appendChild(dodajLjude(profesor));
ul.appendChild(dodajLjude(as1));
ul.appendChild(dodajLjude(as2));
}
function drugiGumb() {
reset();
var naziv = cvorKolegij[1].getElementsByTagName('naziv')[0].firstChild.nodeValue;
button2.setAttribute('value', naziv);
var profesor = cvorKolegij[1].getElementsByTagName('nastavnik')[0].firstChild.nodeValue;
var as1 = cvorKolegij[1].getElementsByTagName('asistent')[0].firstChild.nodeValue;
var ul = document.getElementsByTagName('ul')[0];
ul.appendChild(dodajLjude(profesor));
ul.appendChild(dodajLjude(as1));
}
function treciGumb() {
reset();
var naziv = cvorKolegij[1].getElementsByTagName('naziv')[0].firstChild.nodeValue;
button3.setAttribute('value', naziv);
var profesor = cvorKolegij[1].getElementsByTagName('nastavnik')[0].firstChild.nodeValue;
var as1 = cvorKolegij[1].getElementsByTagName('asistent')[0].firstChild.nodeValue;
var ul = document.getElementsByTagName('ul')[0];
ul.appendChild(dodajLjude(profesor));
ul.appendChild(dodajLjude(as1));
}
function reset() {
var li = document.getElementsByTagName('li');
for (var i = 0; i <= li.length; i++) {
document.getElementsByTagName('ul')[0].removeChild(li[i]);
}
}
function dodajLjude(textItem) {
var li = document.createElement('li');
var tekst = document.createTextNode(textItem);
li.appendChild(tekst);
return li;
}
------------------------------------------------------------------------------------------------------------
Zadatak 42. XML Shema(u dokumentu povezati u zaglavlju "podaci")
---------------------------------------------------------------------------------------------------------
"
<podaci xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="XMLSchema.xsd">
<ishodUcenja broj="1" bodova="25">
"
-------------
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="podaci" type="tipIshod"></xs:element>
<xs:complexType name="tipIshod">
<xs:sequence>
<xs:element name="ishodUcenja" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="poglavlje" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="broj">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{1}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
-----------------------------------------------------------------------------------------
Zadatak 43------------------------------------------------------------------------------
(Jedna fajla xml sheme i druga fajla unutar html javascript)
xml shema(XMLSchema)
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="podaci">
<xs:complexType>
<xs:sequence>
<xs:element name="osoba" maxOccurs="unbounded" type="tipOsoba"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="tipOsoba">
<xs:sequence>
<xs:element name="ime" type="xs:string"/>
<xs:element name="prezime" type="xs:string"/>
<xs:element name="kontakt">
<xs:complexType>
<xs:attribute name="tel" type="telefon"/>
<xs:attribute name="gsm" type="mob"/>
<xs:attribute name="email" type="mail"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="oib" type="oib"/>
</xs:complexType>
<xs:simpleType name="oib">
<xs:restriction base="xs:integer">
<xs:pattern value="[0-9]{11}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="telefon">
<xs:restriction base="xs:string">
<xs:pattern value="0[0-9]{1,2}[0-9]{7}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="mob">
<xs:restriction base="xs:string">
<xs:pattern value="[091|092|095|097|098|099][0-9]{7}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="mail">
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z0-9]+@[a-z-A-Z0-9]+\.[a-zA-Z]{2,3,4}"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
-------------------
Unutar html(script)
<script>
//spremanje imena datoteke
var imeDatoteke = 'Zadatak43.xml';
//Učitavanje XML
window.onload = ucitajXML;
//Funkcija učitavanja xml
function ucitajXML() {
xmlhr = new XMLHttpRequest();
xmlhr.open('GET', imeDatoteke, true);
xmlhr.onreadystatechange = onChange;
xmlhr.send();
select = document.getElementsByTagName('select')[0];
select.onchange = promjena;
button = document.getElementById('btnObrisi');
button.onclick = obrisi;
button2 = document.getElementById('btnUredi');
button2.onclick = promjena1;
}
//Provjea dokumenta
function onChange() {
if (xmlhr.readyState == 4) {
podaci();
}
}
// Funkcija podaci
function podaci() {
//XML DOM je cijeli xml dokument
xmlDom = xmlhr.responseXML;
//Unutar XML dokumenta dohvacam sve tagove Osoba
cvorOsoba = xmlDom.getElementsByTagName('osoba');
//For petlja za iscitavanje Osoba iz XML
for (var i = 0; i < cvorOsoba.length; i++) {
var ime = cvorOsoba[i].getElementsByTagName('ime')[0].firstChild.nodeValue;
var prezime = cvorOsoba[i].getElementsByTagName('prezime')[0].firstChild.nodeValue;
var email = cvorOsoba[i].getElementsByTagName('kontakt')[0].attributes[2].value;
//Spajanje sadrzaja varijabli ime i prezime
var punoIme = ime + ' ' + prezime;
//Pravi option kojeg stavlja u select
var select = document.getElementById('ddlOsoba');
select.appendChild(dodajOsobu(punoIme, email));
}
}
function dodajOsobu(txt, email) {
var option = document.createElement('option');
var tekst = document.createTextNode(txt);
option.appendChild(tekst);
option.setAttribute('id', email);
return option;
}
//Projmena indexa na selectu
function promjena() {
var index = select.selectedIndex;
var email = document.getElementsByName('email')[0];
email.value = cvorOsoba[index].getElementsByTagName('kontakt')[0].attributes[2].value;
}
//Funkcija za button OBRISI
function obrisi() {
var index = select.selectedIndex;
xmlDom.documentElement.removeChild(cvorOsoba[index]);
$('#ddlOsoba').empty();
$('#txtEmail').val('');
podaci();
}
//Funkcija za button UREDI
function promjena1() {
var index = select.selectedIndex;
var email = $('#txtEmail').val();
cvorOsoba[index].getElementsByTagName('kontakt')[0].attributes[2].value = email;
$('#ddlOsoba').empty();
$('#txtEmail').val('');
podaci();
}
</script>
_______________________________________________________________________________________________
Zadatak 51 (XSLTFile)
(Unutar XML dokumenta na vrhu iznad podataka(<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="XSLTFile.xslt"?>)
XSLT fajla
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<ul>
<xsl:for-each select="podaci/kolegij">
<xsl:sort order="ascending" data-type="text" select="@semestar"/>
<li>
<xsl:value-of select="naziv"/>
<ul>
<xsl:for-each select="ishodiUcenja/ishod">
<li>
I<xsl:value-of select="@broj"/> [bodova: <xsl:value-of select="@bodova"/>]
<ul>
<xsl:for-each select="poglavlje">
<xsl:sort order="ascending" data-type="text" select="poglavlje"/>
<li>
<xsl:value-of select="."/>
</li>
</xsl:for-each>
</ul>
</li>
</xsl:for-each>
</ul>
</li>
</xsl:for-each>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
------------------------------------------------------------------------------
Zadatak 52.(Iznad podataka u XML)
----------------------
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="XSLTFile2.xslt"?>
----------------------
Riješenje u XSLTFile2
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<ul>
<xsl:for-each select="podaci/kolegij">
<xsl:sort order="descending" data-type="text" select="@semestar"/>
<li style="list-style-type:none">
<h3>
<xsl:value-of select="naziv"/>
</h3>
<xsl:for-each select="ishodiUcenja/ishod">
<li style="list-style-type:none">
I<xsl:value-of select="@broj"/> - [<xsl:value-of select="count(poglavlje)"/> poglavlja, bodova: <xsl:value-of select="@bodova"/>]
</li>
</xsl:for-each>
<li style="list-style-type:none">
Ukupno ishoda:<xsl:value-of select="count(ishodiUcenja/ishod)"/>
</li>
<li style="list-style-type:none">
Ukupno bodova: <xsl:value-of select="sum(ishodiUcenja/ishod/@bodova)"/>
</li>
</li>
</xsl:for-each>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
___________________________________________________________________________________________________________________________