Avatar billede sbi Nybegynder
22. oktober 2003 - 15:07 Der er 12 kommentarer og
1 løsning

Query i XML fil

Hej

Kan man lave en query i en XML fil uden først at loade den?
Jeg har en XML fil på ca. 100.000 linier.

Har prøvet i ASP.NET:
  Dim myDataSet As New DataSet()
  myDataSet.ReadXml(xmlfile)
Det virker fint men det tager 3-4 sekunder for en XML på 20.000 linier. Det holder jo ikke i længden.

I en traditionel SELECT er man jo ikke nødt til at loade hele tabellen inden man søger...

/SBI
Avatar billede arne_v Ekspert
22. oktober 2003 - 15:15 #1
Nej.

Database tabeller er random acceess (via index).

XML filer er sequential access.
Avatar billede sbi Nybegynder
22. oktober 2003 - 15:52 #2
Det var da et svar der er til at forstå.

(jeg holdeer den lige åben lidt endnu)

/SBI
Avatar billede el_fredo Praktikant
22. oktober 2003 - 15:54 #3
Kan man ikke lave en RAM-disk og så køre sin XML-fil derfra?
Avatar billede sbi Nybegynder
22. oktober 2003 - 15:57 #4
Jeg har ingen erfaringer i den retning, men hvis nogle har ideer er de velkomne.

/SBI
Avatar billede arne_v Ekspert
22. oktober 2003 - 15:58 #5
Man kunne også loade XML filen en gang og gemme den til senere brug.

Men der er ikke noget svarender til database select.
Avatar billede sbi Nybegynder
22. oktober 2003 - 15:59 #6
Hvordan gemmer man den loadede fil til senere brug?

/SBI
Avatar billede arne_v Ekspert
22. oktober 2003 - 16:03 #7
F.eks. en class/static member af en class (en Singleton er pænere).
Avatar billede sbi Nybegynder
22. oktober 2003 - 16:10 #8
Som sagt har jeg ingen tidligere erfaringer på dette punkt, så ovenstående er lige lidt nok til at komme igang. Kunne du give et lille kode eks?

/SBI
Avatar billede arne_v Ekspert
22. oktober 2003 - 17:14 #9
Det hedder Shared i VB.NET.

Her er et ekstremt simpelt eksempel som gemmer en Integer:

Imports System

Class Global
    Public Shared v As Integer
End Class

Class MainClass

    Public Shared Sub Main(ByVal args As String())
        Global.v = 123
        Console.WriteLine(Global.v)
    End Sub
End Class

Du kan gemme din XML information på samme vis i en Shared member.
Avatar billede Slettet bruger
22. oktober 2003 - 17:19 #10
Prøv lige at checke SAX ud - med en SAXParser kan du afslutte når du har hvad du skal bruge.

/CS
Avatar billede arne_v Ekspert
22. oktober 2003 - 17:57 #11
Det betyder stadigvæk læsning af halvdelen af filen (gennemsnitligt) hver
gang.
Avatar billede sbi Nybegynder
23. oktober 2003 - 15:18 #12
Når jeg skriver ovenståede kode skriver den ingenting på siden, dog heller ingen fejl...

/SBI
Avatar billede arne_v Ekspert
23. oktober 2003 - 15:34 #13
Øh.

Det er jo ikke færdig kode - kun et eksempel på hvordan du kan gemme et
objekt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester