XML – vad är det?

XML, eller eXtensible Markup Language, är en specifikation för att specialdesigna så kallade märkspråk, som du sedan kan använda till att spara och dela data på ett strukturerat och välformaterat sätt.

Vi har tidigare berört XML i artikeln HTML vs XHTML. Men varför har det blivit så populärt och hur kan du använda det?

Att använda XML

XML är alltså ett sätt att lagra data. Att det blivit så populärt beror sannolikt på att det är generellt och lätthanterligt och att det således fått stöd i praktiskt taget alla programspråk. Dessutom är det en öppen standard som kan användas av alla.

Både HTML och XML baseras på SGML, därför är tankesättet bakom dem snarlikt och för den som arbetat med HTML är därför XML enkelt att förstå.

Om du har en adressbok och vill spara kontaktinfo om dina vänner i XML så skulle detta kunna se ut så här:

<addressbook>
  <contact>
    <firstname>Fredrik</firstname>
    <surname>Berglund</surname>
    <phonenumber type="home">
      021-XXXXXX
    </phonenumber>
    <phonenumber type="cellphone">
      070-XXXXXXX
    </phonenumber>
  </contact>
  <contact>
    <firstname>Jimmie</firstname>
    <surname>Eriksson</surname>
    <phonenumber type="home">
      021-YYYYYY
    </phonenumber>
    <phonenumber type="cellphone">
      070-YYYYYYY
    </phonenumber>
  </contact>
</addressbook>

HTML är ju som bekant ett textbaserat format, och sålunda även XML. Därför är det lätt att förstå innehållet i en XML-fil. Skulle vi nu vilja läsa in denna adressbok i skriptspråket PHP (som givetvis har stöd för XML, i detta fall med tillägget SimpleXML), och sedan skriva ut hemnumret till Jimmie Eriksson, så skulle vi kunna göra detta på följande vis (utan felhantering):

<?php

  $xml = simplexml_load_file('addressbook.xml');

  foreach($xml->contact[1]->phonenumber as $number)
  {
    switch ((string) $number['type'])
    {
      case 'home':
        echo $rating
        break;
    }
  }

?>

Här läser vi in adressboken som vi lagrat i filen addressbook.xml. Hela tanken med XML är att allt data sparas i en trädstruktur. Först besöker vi därför kontakt nummer två (contact[1]) där data om Jimmie finns lagrad (börjar på 0), sedan itererar vi igenom de telefonnummerstyper som finns där. När vi sedan hittar typen home (hemnumret) så skriver vi helt enkelt ut det på skärmen.

Enkelt och smidigt – precis som det ska vara!

Dela: Facebooktwittergoogle_pluslinkedinmail

6 reaktion på “XML – vad är det?

  1. Aron Knifström

    ”Både HTML och XML baseras på SGML”

    Japp så kan man väl kanske säga, men jag gillar inte det. HTML och XML baseras ju inte på samma sätt från SGML. HTML är ju en implementering av SGML medans XML är en vidareutveckling av SGML. Vist ska man inte göra det onödigt komplicerat men om man använder ordet ”baseras” så otydligt så kommer ju folk aldrig förstå skillnaden.

  2. Fredrik Berglund Inläggsförfattare

    Jack H: Jag är nog dessvärre lite osäker på vad du avser med din fråga. Många moderna hemsidor är skrivna i XHTML vilket är ett XML-format. Tänker du kanske på ett RSS-flöde? Det är också ett XML-format. Kontakta dock gärna vår supportavdelning som sannolikt kan hjälpa dig bättre i detta avseende. Lycka till!

  3. Kjell Staffas

    Jag uppskattar inte att mitt mobiltelefonnummer används som exempel i eran kod. Var vänlig byt ut det, då jag vill förbli anonym.

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *