Question

kokoslavljevic on Fri, 19 Feb 2016 10:45:51


----------I4-----------
---SISPITA 43- dohvacanje atributa
<script>

        window.onload = ucitajXML;        

        var imeDatoteke = 'Zadatak43.xml';

        function ucitajXML() {
            xmlhr = new XMLHttpRequest();
            xmlhr.open('GET', imeDatoteke, true);
            xmlhr.onreadystatechange = onChange;
            xmlhr.send();

            lista = document.getElementsByTagName('select')[0];
            lista.onchange = ispis;

            gumbUredi = document.getElementById('btnUredi');
            gumbUredi.onclick = uredi;

            gumbObrisi = document.getElementById('btnObrisi');
            gumbObrisi.onclick = obrisi;
        }

        function onChange() {
            if (xmlhr.readyState == 4) {
                podaci();
            }

        }

        function podaci() {

            xmlDom = xmlhr.responseXML;
            cvorOsoba = xmlDom.getElementsByTagName('osoba');

            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 kontakt = cvorOsoba[i].getElementsByTagName('kontakt')[0];
                var email = kontakt.attributes[2].value;

                var select = document.getElementsByTagName('select')[0];
                var punoIme = ime + ' ' + prezime;
                select.appendChild(dodajUselect(punoIme, email));
            }

        }//kraj podaci

        function dodajUselect(textItem, mail) {
            var option = document.createElement('option');
            var tekst = document.createTextNode(textItem);
            option.appendChild(tekst);
            option.setAttribute('value', mail);
            return option;
        }

        function ispis() {
            var index = lista.selectedIndex;

            document.getElementById('txtEmail').value = cvorOsoba[index].getElementsByTagName('kontakt')[0].attributes[2].value;

        }

        function uredi() {
            var index = lista.selectedIndex;

            cvorOsoba[index].getElementsByTagName('kontakt')[0].attributes[2].value = document.getElementById('txtEmail').value;            
            
        }

        function obrisi() {
            var index = lista.selectedIndex;

            if (index != -1) {
                xmlDom.documentElement.removeChild(cvorOsoba[index]);
                reset();
            }

        }

        function reset() {
            $('#txtEmail').val('');
            $('select').empty();
            podaci();
        }
</script>



TABLICA I SUMA
----Zad3---
window.onload = ucitajXML;
var aOcjene = new Array();

function ucitajXML() {
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", "studenti.xml", false);
    xmlhttp.send();
    xmlDoc = xmlhttp.responseXML;
    ispisiPodatke();
}

function ispisiPodatke() {
    var brojStudenata = xmlDoc.documentElement.childNodes.length;
    var table = "<table>";
    table += "<th>ID</th><th>Ime</th><th>Prezime</th><th>Ocjena</th>"

    for (i = 0; i < brojStudenata; i++) {
        var trenutniCvor = xmlDoc.documentElement.childNodes[i];
        if (trenutniCvor.nodeType == 1 && trenutniCvor.nodeName == "student") {

            var ime = GetNodeValue(trenutniCvor, "ime");
            var prezime = GetNodeValue(trenutniCvor, "prezime");
            var ocjena = GetNodeValue(trenutniCvor, "ocjena");

            var studentID = trenutniCvor.attributes[0].nodeValue;
            aOcjene.push(ocjena);
            table += "<tr><td>" + studentID + "</td>" + "<td>" + ime + "</td>" + "<td>" + prezime + "</td>" + "<td>" + ocjena + "</td></tr>";
        }
    }
    table += "</table>";
    table += "<br/>Prosjek ocjena: " + prosjekOcjena(aOcjene);

    //ispis tablice u placeholder
    document.getElementById("placeholder").innerHTML = table;
}

function GetNodeValue(parentNode, childNodeName) {
    for (var i = 0; i < parentNode.childNodes.length; i++) {
        if (parentNode.childNodes[i].nodeType == 1 && parentNode.childNodes[i].nodeName == childNodeName)
            return parentNode.childNodes[i].firstChild.nodeValue;
    }
}

function prosjekOcjena(ocjeneArray) {
    var zbroj = 0;
    for (i = 0; i < ocjeneArray.length; i++) {
        zbroj += parseInt(ocjeneArray[i]);
    }
    return (zbroj / ocjeneArray.length).toFixed(2);
}





-----VIDEO-------
/// <reference path="scripts/jquery-1.11.3.min.js" />

var xmlhr, xmlDom, cvorOsoba;

window.onload = function () {
    ucitajXML();
}


//uvijek isto
function ucitajXML() {
    xmlhr = new XMLHttpRequest();
    xmlhr.open("GET", "XMLFile.xml", true);
    xmlhr.onreadystatechange = function () {

        if (xmlhr.readyState == 4) {

            prikazPodataka();
        }
    }
    xmlhr.send();

    //napravio je listu globalnom varijablom
    lista = document.getElementsByTagName("select")[0];
    lista.onchange = ispis;

    $("#btnDodaj").click(dodajOsobu);
    $("#btnUredi").click(urediOsobu);
    $("#btnObrisi").click(obrisiOsobu);
}


//dohvaćanje podataka iz XML-a
function prikazPodataka() {

    xmlDom = xmlhr.responseXML;
    cvorOsoba = xmlDom.getElementsByTagName("osoba");

    for (var i = 0; i < cvorOsoba.length; i++) {
        var oib = cvorOsoba[i].attributes[0].value;

        var ime = cvorOsoba[i].getElementsByTagName("ime")[0].firstChild.nodeValue;

        var prezime = cvorOsoba[i].getElementsByTagName("prezime")[0].firstChild.nodeValue;

        var select = document.getElementsByTagName("select")[0];

        var imePrezime = ime + " " + prezime;

        //dodavanje opitona u select
        select.appendChild(ubaciSelect(imePrezime, oib));
    }
}

//dodavanje optiona u select
function ubaciSelect(ime, broj) {

    var option = document.createElement("option");

    var tekst = document.createTextNode(ime);
    option.setAttribute("value", broj);
    option.appendChild(tekst);

    return option;
}

//ispis iz selecta u kućice
function ispis() {

    //dohvacanje odabranog selecta
    var index = lista.selectedIndex;

    //povezivanje odabranog selecta i xml-a
    var ime = cvorOsoba[index].getElementsByTagName("ime")[0].firstChild.nodeValue;
    var prezime = cvorOsoba[index].getElementsByTagName("prezime")[0].firstChild.nodeValue;
    var oib = cvorOsoba[index].attributes[0].value;

    document.getElementById("txtIme").value = ime;
    document.getElementById("txtPrezime").value = prezime;
    document.getElementById("txtoib").value = oib;
}


//dodavanje u XML
function dodajOsobu() {

    var imeDodaj = $("#txtIme").val();
    var prezimeDOdaj = $("#txtPrezime").val();
    var oibDodaj = $("#txtoib").val();

    if (imeDodaj == "" || prezimeDOdaj == "" || oibDodaj == "") {
        alert("Sva polja obavezna.");
    }

    else {
        //stvaranje elemenata u XML-u
        var cvorOsoba = xmlDom.createElement("osoba");
        cvorOsoba.setAttribute("oib", oibDodaj);

        var cvorIme = xmlDom.createElement("ime");
        cvorIme.appendChild(xmlDom.createTextNode(imeDodaj));

        var cvorPrezime = xmlDom.createElement("prezime");
        cvorPrezime.appendChild(xmlDom.createTextNode(prezimeDOdaj));

        //appendanje
        cvorOsoba.appendChild(cvorIme);
        cvorOsoba.appendChild(cvorPrezime);

        xmlDom.documentElement.appendChild(cvorOsoba);

        reset(); 
    }
    
}

//promjena odabrane osobe
function urediOsobu() {

    var odabrano = document.getElementsByTagName("select")[0];
    var index = odabrano.selectedIndex;

    cvorOsoba[index].getElementsByTagName("ime")[0].firstChild.nodeValue = document.getElementById("txtIme").value;
    cvorOsoba[index].getElementsByTagName("prezime")[0].firstChild.nodeValue = document.getElementById("txtPrezime").value;
    cvorOsoba[index].attributes[0].value = document.getElementById("txtoib").value;

    reset();
}

//brisanje elemenata
function obrisiOsobu() {

    var index = lista.selectedIndex;

    if (index != -1) {
        xmlDom.documentElement.removeChild(cvorOsoba[index]);
        reset();
    }
}


function reset() {
    $("#txtIme, #txtPrezime, #txtoib").val("");
    $("#txtIme").focus();
    $("select").empty();

    prikazPodataka();
}

-------Zad 4.-------------
var ddlDrzava, txtGrad, btn, ul, xml, xmlRootElement;

window.onload = function () {
    //ide na radi svoje valijable
    InicijalizacijaVarijabli();
    UcitajXML("DrzaveiGradovi.xml");

    ddlDrzava.onchange = OnChange;
    btn.onclick = OnKlik;
}

//isto svugdje
function UcitajXML(putanja) {
    xml = new XMLHttpRequest();
    xml.open("GET", putanja, true);
    xml.onreadystatechange = function () {
        if (xml.readyState == 4) {
            xmlRootElement = xml.responseXML.documentElement;
            //ide na 1. 
            PrikaziPodatke();

            //varijabla sprema trenuto odabranu drzavu
            var IDDrzava = ddlDrzava.options[ddlDrzava.selectedIndex].value;

            //ide na 2.prikaz gradova trenutno odabrane drzave
            PrikaziGradoveDrzave(IDDrzava);
        }
    }
    xml.send();
}

// 1. dohvaca Imena Drzava i ID-e
function PrikaziPodatke() {
    var drzave = xmlRootElement.getElementsByTagName("Drzava");
    for (var i = 0; i < drzave.length; i++) {

        var IDDrzava = drzave[i].getElementsByTagName("IDDrzava")[0].firstChild.nodeValue;
        var Naziv = drzave[i].getElementsByTagName("Naziv")[0].firstChild.nodeValue;

        ddlDrzava.appendChild(GetDDLOption(Naziv, IDDrzava));
    }
}

//1.2. prima Ime i ID drzave i stavlja ih u select
function GetDDLOption(text, value) {
    var option = document.createElement("option");
    var txt = document.createTextNode(text);
    option.setAttribute("value", value);
    option.appendChild(txt);
    return option;
}

//promjena u selectu
function OnChange() {
    //varijabla sprema trenuto odabranu drzavu
    var IDDrzava = this.options[this.selectedIndex].value;
    //ide na 2.
    PrikaziGradoveDrzave(IDDrzava);
}

//2.prikaz gradova trenutno odabrane drzave
function PrikaziGradoveDrzave(IDDrzava) {
    ul.innerText = "";

    //ide na 3. dohvaca čvor drzave pod zadanim ID-em
    var drzava = GetDrzavaNode(IDDrzava);

    var gradoviDrzave = drzava.getElementsByTagName("Grad");

    //4.prolazi kroz sve gradove zadane države
    for (var j = 0; j < gradoviDrzave.length; j++) {
        //ide na 4.1 dodaje gradove u li
        DodajListItem(gradoviDrzave[j].getElementsByTagName("Naziv")[0].firstChild.nodeValue);
    }
}

//3. dohvaca čvor drzave pod zadanim ID-em
function GetDrzavaNode(IDDrzava) {
    var cvoroviIDDrzava = xmlRootElement.getElementsByTagName("IDDrzava");
    for (var i = 0; i < cvoroviIDDrzava.length; i++) {
        var idDrz = cvoroviIDDrzava[i].firstChild.nodeValue;
        if (idDrz == IDDrzava)            
            return cvoroviIDDrzava[i].parentNode;
    }
}

//4.1 dodaje gradove u li
function DodajListItem(tekst) {
    var li = document.createElement("li");
    var txt = document.createTextNode(tekst);
    li.appendChild(txt);
    ul.appendChild(li);
}

//5. gumb dodaj
function OnKlik() {
    //provjerava id odabrane drzave
    var IDDrzava = ddlDrzava.options[ddlDrzava.selectedIndex].value;

    //ide na 5.1  dodavanje grada drzavi
    DodajGradDrzavi(IDDrzava, txtGrad.value);

    //pratni mjesto za unos
    txtGrad.value = "";

    //2.prikaz gradova trenutno odabrane drzave
    PrikaziGradoveDrzave(IDDrzava);
}

//5.1  dodavanje grada drzavi
function DodajGradDrzavi(idDrzava, nazivGrada) {
    //upisivanje u "xml"
    var gradNode = xml.responseXML.createElement("Grad");
    var gradNodeText = xml.responseXML.createTextNode(nazivGrada);
    var nazivNode = xml.responseXML.createElement("Naziv");

    nazivNode.appendChild(gradNodeText);
    gradNode.appendChild(nazivNode);

    //ide na 3. dohvaca čvor drzave pod zadanim ID-em
    var drzavaNode = GetDrzavaNode(idDrzava);
    drzavaNode.appendChild(gradNode);
}

//radi svoje varijable
function InicijalizacijaVarijabli() {
    ddlDrzava = document.getElementById("ddlDrzava");
    txtGrad = document.getElementById("txtGrad");
    btn = document.getElementById("btn");
    ul = document.getElementsByTagName("ul")[0];
}


S H E M A
-----Zad1-----
XML:
<?xml version="1.0" encoding="utf-8"?>
<adresar xmlns="http://tempuri.org/Zadatak01.xsd">
<osoba>
    <ime>Andrea</ime>
    <prezime>Andrejević</prezime>
    <email>andrea.andrejevic@mail.com</email>
    <starost>36</starost>
  </osoba>
  <osoba>
    <ime>Marko</ime>
    <prezime>Marić</prezime>
    <email>marko@email.com</email>
    <starost>38</starost>
  </osoba>
</adresar>

XSD:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="Zadatak01"
    targetNamespace="http://tempuri.org/Zadatak01.xsd"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/Zadatak01.xsd"
    xmlns:mstns="http://tempuri.org/Zadatak01.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:element name="adresar">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="osoba" type="tipOsoba" minOccurs="2" maxOccurs="unbounded" />
      </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="email" type="tipEmail" />
      <xs:element name="starost">
        <xs:simpleType>
          <xs:restriction base="xs:integer">
            <xs:minInclusive value="0" />
            <xs:maxExclusive value="120" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="tipEmail">
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9a-zA-Z.-]+@[0-9a-zA-Z.-]+\.(hr|com|org)"/>
    </xs:restriction>
  </xs:simpleType>
  
</xs:schema>


-----Zad2-----
XML:
<?xml version="1.0" encoding="utf-8"?>
<katalogAlbuma xmlns="http://tempuri.org/Zadatak02.xsd">
  <album grupa="U2" naslov="Pop">
    <pjesma>Miami</pjesma>
  </album>
  <album grupa="DepecheMode" naslov="Violator">
    <pjesma>Policy of Truth</pjesma>
    <pjesma>Personal Jesus</pjesma>
  </album>
  <album grupa="Pink Floyd" naslov="dark side of the moon">
    <pjesma>Time</pjesma>
    <pjesma>Money</pjesma>
    <pjesma>Eclipse</pjesma>
  </album>
</katalogAlbuma>

XSD:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="Zadatak02"
    targetNamespace="http://tempuri.org/Zadatak02.xsd"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/Zadatak02.xsd"
    xmlns:mstns="http://tempuri.org/Zadatak02.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:element name="katalogAlbuma">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="album" type="tipAlbum" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="tipAlbum">
    <xs:sequence>
      <xs:element name="pjesma" maxOccurs="20">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="20"/>
          </xs:restriction>          
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="grupa" type="xs:string" use="required"/>
    <xs:attribute name="naslov" type="xs:string"/>
  </xs:complexType>  
</xs:schema>

--------Zad3---------
XML:
<?xml version="1.0" encoding="utf-8"?>
<vozila xmlns="http://tempuri.org/Zadatak3.xsd">
  <vozilo regOznaka="ZG-1234-AB">
    <osnovniPodaci>
      <marka>Volkswagen</marka>
      <model>Golf</model>
      <boja>Bijela</boja>
    </osnovniPodaci>
    <performanse>
      <maxBrzina>220</maxBrzina>
      <ubrzanje mjernaJedinica="sekunda">7.1</ubrzanje>
      <potrosnja>10.2</potrosnja>
    </performanse>
  </vozilo>
</vozila>

XSD:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="XMLSchema"
    targetNamespace="http://tempuri.org/Zadatak3.xsd"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/Zadatak3.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:element name="vozila">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="vozilo" maxOccurs="30">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="osnovniPodaci">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="marka" type="xs:string"/>
                    <xs:element name="model" type="xs:string"/>
                    <xs:element name="boja">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:enumeration value="Bijela"/>
                          <xs:enumeration value="Crvena"/>
                          <xs:enumeration value="Plava"/>
                          <xs:enumeration value="Crvena"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="performanse">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="maxBrzina">
                      <xs:simpleType>
                        <xs:restriction base="xs:int">
                          <xs:minInclusive value="100"/>
                          <xs:maxInclusive value="400"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="ubrzanje">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:float">
                            <xs:attribute name="mjernaJedinica" type="xs:string" fixed="sekunda"/>
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="potrosnja" type="xs:float" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="regOznaka">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:pattern value="[A-Z]{2}-\d{3,4}-[A-Z]{1,2}"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
          </xs:complexType>          
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

----mjerne jedninice
<xs:simpleType name="mjernaJedinica">
<xs:restriction base="xs:string">
<xs:enumeration value="mm"/>

Sponsored



Replies

DotNet Wang on Mon, 22 Feb 2016 03:30:10


Hi kokoslavljevic,

MSBuild forum is aim to discuss the Microsoft build engine aka MSBuild. Topics including: usage of MSBuild, build customization, and MSBuild extensibility via tasks, loggers and hosting. 

In addition,  please select your language from the drop down list at the bottom of the page to post your question in the language of your choice. The forum you posted in is for English only.

Best Regards,
Li Wang