Kom ihåg mig?
Home Menu

Menu


Varför är dom xml bättre än simple xml

Ämnesverktyg Visningsalternativ
Oläst 2010-10-29, 17:29 #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 Varför är dom xml bättre än simple xml

Hej,
jag undrar varför dom xml bättre än simple xml?

Vad är det som gör den bättre och finns det något fall där den inte är bättre?
mojitoo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-10-29, 17:50 #2
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
Vilket XML-bibliotek som är bäst beror ju på vad du är ute efter. DOM XML implementerar fler funktioner och är bättre objektorienterat (imo). Det följer också DOM-standarden för hur man arbetar med XML-dokument så om du gjort det tidigare i ett annat språk kommer du att känna igen dig. Å andra sidan är DOM XML mer komplex än SimpleXML och därmed svårare att använda för nybörjare.

Båda använder libxml för att utföra sitt arbete så skillnaden i prestanda är förmodligen minimal. De läser in hela XML-filen i minnet så för riktigt stora filer presterar de precis lika dåligt.

För hög prestanda (men med färre funktioner) är någon form av SAX-tolk ännu bättre, till exempel XMLReader-biblioteket.

Senast redigerad av emilv den 2010-10-29 klockan 17:53
emilv är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-10-29, 18:25 #3
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
Citat:
Ursprungligen postat av emilv Visa inlägg
Vilket XML-bibliotek som är bäst beror ju på vad du är ute efter. DOM XML implementerar fler funktioner och är bättre objektorienterat (imo). Det följer också DOM-standarden för hur man arbetar med XML-dokument så om du gjort det tidigare i ett annat språk kommer du att känna igen dig. Å andra sidan är DOM XML mer komplex än SimpleXML och därmed svårare att använda för nybörjare.

Båda använder libxml för att utföra sitt arbete så skillnaden i prestanda är förmodligen minimal. De läser in hela XML-filen i minnet så för riktigt stora filer presterar de precis lika dåligt.

För hög prestanda (men med färre funktioner) är någon form av SAX-tolk ännu bättre, till exempel XMLReader-biblioteket.
Intressant att höra då jag tidigare fått intrycket av att dom xml skulle prestera mycket bättre.

Men för att gå ifrån frågan något, kan man på något sätt exempelvis bara läsa in början av en xml fil? Säg att jag har sparat att den senaste versionen av xml-filen jag läste in sparades klockan 18:20. Nu är klockan 19:20 och jag ska kolla om den har uppdaterats. Det känns som rätt mycket slöseri med bandbredd om man ska behöva läsa in hela filen för att kontrollera en så simpel sak. I xml-filen finns följande rad som jag jämför med: <lastupdated>2010-10-29 18:40:07</lastupdated>

Det jag vill göra är att läsa in en xml fil i en databas. Jag har tidigare löst detta med en while-sats och simple xml. Kanske inte den mest effektiva lösningen, därför jag undrar. Som det är nu läser jag exempelvis in hela xml-filen vid min jämförelse om den är uppdaterad osv. Jag tänkte att kanske XML DOM kunde ha hjälpt mig.

Senast redigerad av mojitoo den 2010-10-29 klockan 18:28
mojitoo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-10-29, 18:31 #4
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
Kolla in XMLReader-biblioteket. Det borde kunna göra det du vill. Annars kan du göra en vanlig stat på filsystemet om filen ligger lokalt (filemtime).
emilv är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-10-29, 20:11 #5
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Hur ofta läser du in filen? Hur stor är den? Görs det inte mer än en gång i timmen så behöver du normalt sett inte bry dig mycket om prestanda annat än i extremfall.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-10-29, 20:44 #6
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
emilv: Jag ska ta en närmare titt på det.

Citat:
Ursprungligen postat av tartareandesire Visa inlägg
Hur ofta läser du in filen? Hur stor är den? Görs det inte mer än en gång i timmen så behöver du normalt sett inte bry dig mycket om prestanda annat än i extremfall.
XML filen som läses in varierar i storlek mellan 2-4mb beroende på veckodag och tid, kontrollen sker även via ett cronjob var 20minut så alltså relativt ofta. Anledningen till att den sker så ofta är att datan i den uppdateras väldigt ofrekvent. Ibland kan det vara flera timmar mellan en uppdatering och ibland ett par minuter. XML filen läses förövrigt även in från en annan server så jag vet inget annat sätt att kontrollera när den senast var uppdaterad än att kolla <lastupdate> i själva XML filen.
mojitoo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-10-30, 15:53 #7
studiox studiox är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2004
Inlägg: 1 356
studiox studiox är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2004
Inlägg: 1 356
Citat:
Ursprungligen postat av emilv Visa inlägg
Kolla in XMLReader-biblioteket. Det borde kunna göra det du vill. Annars kan du göra en vanlig stat på filsystemet om filen ligger lokalt (filemtime).
Ja, XMLReader och XMLWriter klarar man sig inte utan när man jobbar med Streams. Skrev en 500Mb xml fil (runt 15 miljoner entries) för ett par veckor sedan, skulle aldrig ha klarat det utan XMLWriter.
studiox är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-10-30, 16:08 #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
Citat:
Ursprungligen postat av studiox Visa inlägg
Ja, XMLReader och XMLWriter klarar man sig inte utan när man jobbar med Streams. Skrev en 500Mb xml fil (runt 15 miljoner entries) för ett par veckor sedan, skulle aldrig ha klarat det utan XMLWriter.
Bara för att klargöra, jag antar att det är följande bibliotek som ni diskuterar att är bra?

http://php.net/manual/en/book.xmlreader.php
http://www.php.net/manual/en/book.xmlwriter.php


Är det någon av er som vet vilken funktion man borde studera närmare för att inte behöva läsa in hela dokumenten för att kolla en nod alldeles i början av dokumenten?
mojitoo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-11-01, 16:52 #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
Då är det XMLReader-klassen du ska studera. Någon särskild funktion verkar det inte vara, utan förstå hur hela klassen fungerar, både funktioner och egenskaper.
emilv ä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:28.

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