FAQ |
Kalender |
2010-06-24, 00:57 | #1 | ||
|
|||
Medlem
|
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. |
||
Svara med citat |
2010-06-24, 01:07 | #2 | |||
|
||||
Mycket flitig postare
|
Citat:
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. |
|||
Svara med citat |
2010-06-24, 07:55 | #3 | |||
|
||||
Bara ett inlägg till!
|
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. |
|||
Svara med citat |
2010-06-24, 10:34 | #4 | |||
|
||||
Mycket flitig postare
|
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 |
|||
Svara med citat |
2010-06-24, 11:42 | #5 | ||
|
|||
Banned
|
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 |
||
Svara med citat |
2010-06-24, 12:13 | #6 | ||
|
|||
Medlem
|
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? |
||
Svara med citat |
2010-06-24, 14:33 | #7 | ||
|
|||
Administratör
|
Citat:
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.
__________________
eldefors.com - Personlig (teknik)-blogg |
||
Svara med citat |
2010-06-28, 00:24 | #8 | ||
|
|||
Medlem
|
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. |
||
Svara med citat |
2010-06-28, 10:48 | #9 | |||
|
||||
Bara ett inlägg till!
|
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. |
|||
Svara med citat |
2010-06-28, 14:11 | #10 | ||
|
|||
Medlem
|
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. |
||
Svara med citat |
Svara |
|
|