WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   XML frågor (https://www.wn.se/forum/showthread.php?t=36283)

FunTrix 2009-04-15 12:25

Tjo!
Håller på att lära mig det här med xml och bygger ett litet script för det. Men när jag satt och testade lite får man ju lite hemmagjorda exempel om man säger så och skulle därför vilja ha lite hjälp av er hur det kan se ut i verkligheten.
Som exempel vings xml-fil ser ut såhär:
Kod:

<?xml version="1.0" encoding="utf-8" ?>
<lms>
<lastupdated>2009-04-15 11:40</lastupdated>
       
 <travel>
  <depdate>16/4</depdate>
  <destcd>Kreta/Chania</destcd>
  <duration>1v</duration>
  <price>999:-</price>

  <departure> Stockholm - Arlanda</departure>
  <hotel>Endast flyg</hotel>
  <oneseatprice>!</oneseatprice>
  <url>http://www.ving.se/book/bookMatrix.aspx?&amp;hotelid=23387&amp;SerialNumber=42&amp;TransportClassCode=E&amp;HotelCode=FLYA &amp;DepartureDateTime=2009-04-16&amp;roomtp=F11  &amp;DepartureCode=ARN&amp;DestinationCode=CHQ&amp;Duration=8</url>

  <lmsurl>http://www.ving.se/lms/lms.aspx?categoryid=1&amp;fromRSS=true&amp;Date=16/04&amp;DepartureCode=ARN&amp;DestinationCode=CHQ&amp;HotelId=23387&amp;SerialNumber=42&amp;TransportClassCode=E&amp;RoomTp=F11  &amp;HotelCode=FLYA &amp;Duration=8</lmsurl>
 </travel>
</lms>

Och den gäller bara sista minuten resor, antar att det är det lms står för i det här fallet. Men kan man råka stöta på en xml fil som innehåller om man ska tänka i produktvis både sista minuten och charter, eller cd-skivor och filmer? Hur ofta är det i så fall man stöter på en blandad fil och hur skulle de kunna se ut som ett exempel?
För oftast vill man ju inte skriva ut dessa i en enda stor röra på sidan utan dela upp det.
Tack på förhand.

hnn 2009-04-15 13:36

Det är ju en fråga du får ta med Ving ju?

Rent teoretiskt kan du stöta på en XML fil som innehåller Charter, Böcker, Sprit, Annonser och Matvaror.
Det är ju upp till var och en vad dom vill visa i sitt XML blad.

FunTrix 2009-04-15 15:17

Citat:

Originally posted by hnn@Apr 15 2009, 13:36
Det är ju en fråga du får ta med Ving ju?

Rent teoretiskt kan du stöta på en XML fil som innehåller Charter, Böcker, Sprit, Annonser och Matvaror.
Det är ju upp till var och en vad dom vill visa i sitt XML blad.

Jo men i det här fallet tog jag bara ving som ett exempel. Hur skulle en tänkbar xml fil med både charter och sista minuten se ut då för att man skulle kunna skilja på det?
Något liknande som i exemplet nedan då man har olika namn på taggarna eller?
Skulle vara tacksam om någon kunde posta ett exempel på hur en xml-fil med flera produkter skulle kunna se ut så att man får se.


Kod:

<lms>
<lastupdated>2009-04-15 11:40</lastupdated>

 <travel>
  <depdate>16/4</depdate>
  <destcd>Kreta/Chania</destcd>
  <duration>1v</duration>
  <price>999:-</price>

  <departure> Stockholm - Arlanda</departure>
  <hotel>Endast flyg</hotel>
  <oneseatprice>!</oneseatprice>
  <url>http://www.ving.se/book/bookMatrix.aspx?&amp;hotelid=23387&amp;SerialNumber=42&amp;TransportClassCode=E&amp;HotelCode=FLYA &amp;DepartureDateTime=2009-04-16&amp;roomtp=F11  &amp;DepartureCode=ARN&amp;DestinationCode=CHQ&amp;Duration=8</url>

  <lmsurl>http://www.ving.se/lms/lms.aspx?categoryid=1&amp;fromRSS=true&amp;Date=16/04&amp;DepartureCode=ARN&amp;DestinationCode=CHQ&amp;HotelId=23387&amp;SerialNumber=42&amp;TransportClassCode=E&amp;RoomTp=F11  &amp;HotelCode=FLYA &amp;Duration=8</lmsurl>
 </travel>
</lms>
<charter>
<lastupdated>2009-04-15 11:40</lastupdated>

 <travel>
  <depdate>16/4</depdate>
  <destcd>Kreta/Chania</destcd>
  <duration>1v</duration>
  <price>23999:-</price>

  <departure> Stockholm - Arlanda</departure>
  <hotel>flyg och hotell</hotel>
  <oneseatprice>!</oneseatprice>
  <url>http://www.ving.se/book/bookMatrix.aspx?&amp;hotelid=23387&amp;SerialNumber=42&amp;TransportClassCode=E&amp;HotelCode=FLYA &amp;DepartureDateTime=2009-04-16&amp;roomtp=F11  &amp;DepartureCode=ARN&amp;DestinationCode=CHQ&amp;Duration=8</url>

  <lmsurl>http://www.ving.se/lms/lms.aspx?categoryid=1&amp;fromRSS=true&amp;Date=16/04&amp;DepartureCode=ARN&amp;DestinationCode=CHQ&amp;HotelId=23387&amp;SerialNumber=42&amp;TransportClassCode=E&amp;RoomTp=F11  &amp;HotelCode=FLYA &amp;Duration=8</lmsurl>
 </travel>
</charter>


tartareandesire 2009-04-15 15:25

Normalt sett finns det ett specifikt syfte med en xml-fil men självklart kan den innehålla olika typer av produkter eller vad det nu må vara. Det är ju upp till skaparen. Man kan lägga in uppgifter om galaxer och tomater i samma xml om man nu vill det. Ska den vara användbar måste man ju dock kunna skilja de olika elementen åt på något vis.

I det här fallet kan du antingen ha olika namn på någon tagg eller, kanske lite smidigare, lägga till en tagg som talar om vad det är typ av resa.

martine 2009-04-15 16:09

Fördelen med xml är att du kan lägga till element med vilka namns som helst och också hursomhelst (så länge du följer de vanliga xml-reglerna). Du kan alltså lagra vilken information som helst med beskrivande taggar. Vad du kanske har missat är att man till skillnad från html kan använda precis vilka taggar som helst i xml generellt. Sedan kan du utveckla egna dokumenttyper som ska innehålla vissa specifika element och kalla dessa något speciellt som t.ex. rss eller atom.

För just ving och andra web-service-xml:er så borde dom ange en dtd (dvs. en beskrivning för hur strukturen kan se ut och vad som kan finnas i dokumentet) så att man utan vidare kan använda den utan att bli förvånad. Personligen tycker jag alltid man bör använda en dtd (eller schema om man hellre vill det) för xml-filer som man gör tillgängliga för andra (gärna också med version angiven så att man kan följa förändringar).

FunTrix 2009-04-15 16:18

Citat:

Originally posted by tartareandesire@Apr 15 2009, 15:25
Normalt sett finns det ett specifikt syfte med en xml-fil men självklart kan den innehålla olika typer av produkter eller vad det nu må vara. Det är ju upp till skaparen. Man kan lägga in uppgifter om galaxer och tomater i samma xml om man nu vill det. Ska den vara användbar måste man ju dock kunna skilja de olika elementen åt på något vis.
I det här fallet kan du antingen ha olika namn på någon tagg eller, kanske lite smidigare, lägga till en tagg som talar om vad det är typ av resa.


aa okej så det skulle vara dumt att skapa exempelvis ett filter för ett script som bara läser informationen mellan två taggar?

låt oss säga
<charter>massa resor här</charter>
<lms>massa sista minuten här</lms>

och jag bara skulle vilja spara informationen mellan <lms> taggarna men det kanske inte finns någon xml fil som är utformad så?
Det kanske då är som tartareandesire sa vanligare att man i så fall lägger in en tagg under varje resa?

Bara intresserad av vad som är vanligt ute i den stora farliga världen. Det kanske är vanligast att man har en xmlfil för varje typ av produkt så att man egentligen inte ens behöver tänka på det här.

emilv 2009-04-15 21:13

Det finns inget "vanligast i vida världen". Det finns flera varianter. OM man ska ha både charter och sista-minuten i samma fil så skulle nog de flesta välja att ha flera <travel>-element och ett <traveltype>-element inuti <travel>-elementet, alternativt ett traveltype-attribut typ <travel traveltype="charter">

Men det är minst lika vanligt att ha separata XML-filer för olika typer av objekt. Kollar du till exempel på svd.se så har de valt att ha flera olika RSS-feeder för olika artikeltype.

Allt beror på syftet med filen, vilken data den innehåller etc. Det kan begränsas av externa faktorer också, till exempel så kanske filen är en direkt export ur ett företags affärssystem, eller så kanske de har ett XML-schema som måste följas på grund av att andra i samma bransch använder detta schema.

Men det finns ingen standard utöver XML-standarden. Den som tagit fram formatet har förmodligen tagit fram det för att uppfylla vissa krav och användas i någon särskild tillämpning, och har då fått anpassa formatet utifrån det. Mer än så går inte att säga.

dAEk 2009-04-15 21:23

Citat:

Originally posted by FunTrix@Apr 15 2009, 16:18
Det kanske är vanligast att man har en xmlfil för varje typ av produkt så att man egentligen inte ens behöver tänka på det här.
Man kan inte svara på något så generellt. Det beror på en massa olika faktorer. Hur som helst finns det flera olika DOM-parsers som gör det enkelt att läsa ut information från XML-dokument oavsett hur de råkar vara strukturerade.


Alla tider är GMT +2. Klockan är nu 03:28.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson