Avoin data - Pääteohjaus 7

Käytetään muiden tekemiä XML-dokumentteja ja WWW-sivuja tiedonlähteenä.

DOM-rajapinta on tuttu jo TIEA2120 WEb-käyttöliittymien ohjelmointi -kurssilta. Jos olet unohtanut niin kertaa Document Object Model (DOM) ja Javascript ja DOM. Tässä pääteohjauksessa opetellaan DOM-rajapinnan käyttäminen Python-ohjelmointikielellä.

Ulkoisen XML-datan sisällyttäminen omalle sivulle

XML ja nimiavaruudet

XML-dokumenttiin voi olla sisällytetty elementtejä useasta eri nimiavaruudesta (namespace). Tämä täytyy osata huomioida dokumentin sisältöä käsiteltäessä. Käytetystä kirjastosta riippuen voi joutua käyttämään getElementsByTagNameNS-funktiota tavallisen getElementsByTagName-funktion sijaan. Esim.

mi = doc.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML", "mi")

Käyttämällä nimiavaruuden osaavaa versiota varmistaa, että ei ainakaan saa vahingossa tulokseen vääriä elementtejä. Eri nimiavaruuksissa voi olla samannimisiä elementtejä.

Joskus XML-dokumenteissa on myös CDATA-osioita, joiden parsiminen täytyy joillakin kirjastoilla tehdä poikkeavasti:

if node.firstChild.nodeName == "#cdata-section":
    print node.firstChild.data
else:
    print node.firstChild.nodeValue

Käyttäjien kommentit

Kommentoi Lisää kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/tiea2080/ohjaus/ohjaus7/
© 2018-04-03 15:31:19
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta