Kom ihåg mig?
Home Menu

Menu


Meningen med att konvertera xml till databas?

 
Ämnesverktyg Visningsalternativ
Oläst 2010-06-24, 00:57 #1
mojitoo mojitoo är inte uppkopplad
Medlem
 
Reg.datum: Jun 2010
Inlägg: 125
mojitoo mojitoo är inte uppkopplad
Medlem
 
Reg.datum: Jun 2010
Inlägg: 125
Standard Meningen med att konvertera xml till databas?

Hej!

Jag funderar på hur jag ska färdigställa ett projekt som jag har haft i tankarna länge. Det är nämligen som så att jag vill att användarna ska kunna ladda upp egna xml-filer för att sedan kunna visa och sortera resultatet. Låt oss säga att man vill sortera på pris eller namn. Än så länge är jag en riktig nybörjare på xml, därav min kommande fråga. För att kunna göra detta, är det då bäst att först konvertera resultatet till en databastabell eller ska man ställa frågorna direkt i xml filen? Jag tycker att det känns knöligt att exempelvis välja ORDER BY name i en xml fil, men kanske är eftersom att jag inte har så stor koll på det än. Tilläggas ska även att tanken är att man ska kunna lägga till två xml-filer och visa dem på samma htmlsida. Är detta ens genomförbart genom att bara visa en xml-fil eller måste man gå genom en databas för att åstadkomma detta?
Finns det någon nackdel med att lägga det i en databas?

Ge lite tips och råd till en nybörjare på området xml. Som databasmotor använder jag MySQL som så många andra.
mojitoo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-24, 01:07 #2
abergmans avatar
abergman abergman är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Feb 2010
Inlägg: 762
abergman abergman är inte uppkopplad
Mycket flitig postare
abergmans avatar
 
Reg.datum: Feb 2010
Inlägg: 762
Citat:
Ursprungligen postat av mojitoo Visa inlägg
Hej!

Jag funderar på hur jag ska färdigställa ett projekt som jag har haft i tankarna länge. Det är nämligen som så att jag vill att användarna ska kunna ladda upp egna xml-filer för att sedan kunna visa och sortera resultatet. Låt oss säga att man vill sortera på pris eller namn. Än så länge är jag en riktig nybörjare på xml, därav min kommande fråga. För att kunna göra detta, är det då bäst att först konvertera resultatet till en databastabell eller ska man ställa frågorna direkt i xml filen? Jag tycker att det känns knöligt att exempelvis välja ORDER BY name i en xml fil, men kanske är eftersom att jag inte har så stor koll på det än. Tilläggas ska även att tanken är att man ska kunna lägga till två xml-filer och visa dem på samma htmlsida. Är detta ens genomförbart genom att bara visa en xml-fil eller måste man gå genom en databas för att åstadkomma detta?
Finns det någon nackdel med att lägga det i en databas?



Ge lite tips och råd till en nybörjare på området xml. Som databasmotor använder jag MySQL som så många andra.

Om du ska behandla datan så tror jag att det går fortare och kräver mindre prestanda om du läser in det i en databas. Då kan du ju även låta användarna spara sina filer för senare användning, du vill ju gärna slippa ha en folder med 10000 .xml filer, det kommer suga en hel del kraft att behandla och hitta rätt fil.
abergman är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-24, 07:55 #3
emilvs avatar
emilv emilv är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2004
Inlägg: 1 564
emilv emilv är inte uppkopplad
Bara ett inlägg till!
emilvs avatar
 
Reg.datum: Feb 2004
Inlägg: 1 564
Vet du vad det är för format på XML-filen? Eller ska man kunna ladda upp vilken form som helst?

Kanske kan det i ditt fall vara ett alternativ att lägga ut sorteringen på användarens egen CPU med hjälp av XSLT och JavaScript.
emilv är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-24, 10:34 #4
martines avatar
martine martine är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2005
Inlägg: 767
martine martine är inte uppkopplad
Mycket flitig postare
martines avatar
 
Reg.datum: Mar 2005
Inlägg: 767
Som abergman påpekar så finns det vissa fördelar med att lagra datan i en databas om det ska bearbetas mycket, däremot brukar xml:s fria trädstruktur vara lite knökig att få in i tabeller om du inte vet på förhand hur de är uppbyggda.

Annars skulle jag rekommendera att du tar dig en titt på xsl och använder xsl:s inbyggda sorteringsfunktioner (vilket kan vara lite klurigt om du är ny på xml men det är i alla fall en fördjupning i ämnet).

För övrigt rekommenderar jag dig att lära dig xpath och dom-funktionerna för att kunna bearbeta xml på bästa sätt.

Senast redigerad av martine den 2010-06-24 klockan 10:37
martine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-24, 11:42 #5
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
XML är ingen lagringsplats utan ett sätt att skyffla data på ett strukturerat sätt mellan system.

XML är ett oerhört "segt" format att arbeta med eftersom det lätt stiger i volym om det handlar om mycket data.
Sen är XSL inte direkt känt för att arbeta snabbt och det kan lätt bli fel ifall det börjar röra sig om stora förändringar i datan.

Så ska du arbeta med det, så är en databas att föredra
hnn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-24, 12:13 #6
yadis yadis är inte uppkopplad
Medlem
 
Reg.datum: Mar 2009
Inlägg: 66
yadis yadis är inte uppkopplad
Medlem
 
Reg.datum: Mar 2009
Inlägg: 66
Varför inte göra det ännu enklare och låta användarna ladda upp semikolonseparerad textfil som du enkelt sen importerar i databasen auto?
Måste användarna kunna xml?
yadis är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-24, 14:33 #7
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Ursprungligen postat av hnn Visa inlägg
XML är ingen lagringsplats utan ett sätt att skyffla data på ett strukturerat sätt mellan system.

XML är ett oerhört "segt" format att arbeta med eftersom det lätt stiger i volym om det handlar om mycket data.
Sen är XSL inte direkt känt för att arbeta snabbt och det kan lätt bli fel ifall det börjar röra sig om stora förändringar i datan.

Så ska du arbeta med det, så är en databas att föredra
XML är ett sätt att skyffla data OCH en lagringsplats. Se t ex Wikipedia för XML Database. Prestandan varierar även enormt beroende på databas osv.

Det är lite svårt att föreslå en lösning utan att veta någon om datan.

Finns det t ex ett schema XML-filerna följer och ett fåtal statiska variabler som kommer användas vid sortering? Isåfall är en klassisk RDBMS nästan alltid att föredra. Validera filen mot ditt XML-schema och lägg sedan in i en databas där sorterings-variablerna är indexerade.

Annars kan kanske en schemalös databas vara värd att titta på. Men behöver du även skilja på attribut, sortera på funktionsresultat osv kanske det är lättare att arbeta direkt mot XML-filerna.

Är problemet endast en syntax-fråga och du vill lösa det så snabbt som möjligt kanske du bör titta på en XML-databas som stödjer SQL.

Finns det anledning att oroa sig över prestanda kan det också som emilv skrev vara värt att se om det kan lösas på klientsidan.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-28, 00:24 #8
mojitoo mojitoo är inte uppkopplad
Medlem
 
Reg.datum: Jun 2010
Inlägg: 125
mojitoo mojitoo är inte uppkopplad
Medlem
 
Reg.datum: Jun 2010
Inlägg: 125
Hej!

Tack för alla era svar.
Ett litet förtydligande från min sida är att det handlar om produkt feeds. Ett exempel på hur de skulle kunna se ut är följande: http://www.fritidsresor.se/Blandade-...feeds/tradera/
Användarna som ska ladda upp sina xml filer har dem redan skapade i just det formatet och det är därför just xml är intressant i mitt fall eftersom det är så de för över datan till mig.
Så vad tycker ni att jag borde börja läsa på för att kunna indexera produkt xml filer likt den ovan. Låt oss säga att parameternamnen kan skilja mellan användarna, vissa namnger dem productname, andra bara name men i stora drag är dess utseende liknande. Skulle ni i detta fall säga att det allra klokaste skulle vara att indexera dem i en databas, exempelvis mysql eller finns det bättre sätt att sammanställa ett antal olika sådana här xml filer och visa dem tillsammans? Jag vill även kunna ställa lite frågor till den, som att sortera på namn etc.
mojitoo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-28, 10:48 #9
emilvs avatar
emilv emilv är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Feb 2004
Inlägg: 1 564
emilv emilv är inte uppkopplad
Bara ett inlägg till!
emilvs avatar
 
Reg.datum: Feb 2004
Inlägg: 1 564
Nu säger du inte vilket språk du arbetar i, men många språk har inbyggt stöd för XML I exempelvis PHP kan du välja mellan SimpleXML och DOM XML. Båda är användbara för den här typen av jobb, men SimpleXML har något mindre "pratig" syntax.

Eftersom XML-filerna kan ha skillnader är det bäst ifall du skriver en tolk för varje typ. Att försöka sig på att automatiskt tolka filerna är rätt invecklat och risken för fel är stor. Det är speciellt så många rader kod för att omvandla från XML till en vektor/array.
emilv är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-28, 14:11 #10
mojitoo mojitoo är inte uppkopplad
Medlem
 
Reg.datum: Jun 2010
Inlägg: 125
mojitoo mojitoo är inte uppkopplad
Medlem
 
Reg.datum: Jun 2010
Inlägg: 125
Jag använder mig av php.

Jag hade som sagt tänkt att skapa en liten "tolk" där användarna själva får mappa nodnamnet i sin xml-fil mot förbestämda namn i databasen. Därav min första fråga gällande om det bästa sättet var att spara innehållet i en databas eller om det var lättare att tolka det rakt ut från xml-filen på något sätt.

Jag tog en titt på DOM XML i php, och där verkade det som att det inte var allt för svårt att läsa in en hel xml fil och skriva ut innehållet i den. Jag fick däremot inget direkt kontroll på hur svårt det var om man ville läsa in flera filer xml-filer och skriva ut dem, kunna filtrera det man visar etc.

Är det någon större skillnad i laddningstid om man skriver ut resultatet direkt från xml-filen eller om man först läser in resultatet till en databas och skriver ut det från den och innan man skriver ut den ser om filen har blivit uppdaterad sen den senast sparades i databasen.
mojitoo är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 21:39.

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