/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Wrapper-klasse til XML-fil persistens.
Fra : Morten Nørgaard


Dato : 02-03-04 15:26

Hej gruppe.

Jeg kan parse xml fra en xml-fil og oprette en ny xml-fil. Jeg benytter
mig af streams til dette. Det fungerer sådan set fint nok. Men egentlig
ville jeg gerne kunne påvirke en xml-fil på samme måde som jeg kan påvirke
et DOM objekt i hukommelsen. Tag f.eks."documentNode.appendChild(
newNode )'. Jeg vil gerne gøre noget i denne her retning:
'outputstream.documentNode.appendChild( newNode )', og efterfølgende åbne
filen i min texteditor og finde ud af at newNode er skrevet ind i filen på
det rigtige sted. Med andre ord har jeg brug for en wrapper-klasse, af en
art. Det må der da være nogen der har tænkt på før. Er der nogen der kender
til en klasse af den art?

På forhånd tak for svar.

Morten



 
 
Morten Nørgaard (02-03-2004)
Kommentar
Fra : Morten Nørgaard


Dato : 02-03-04 15:50


> Jeg kan parse xml fra en xml-fil og oprette en ny xml-fil. Jeg
benytter
> mig af streams til dette. Det fungerer sådan set fint nok. Men egentlig
> ville jeg gerne kunne påvirke en xml-fil på samme måde som jeg kan påvirke
> et DOM objekt i hukommelsen. Tag f.eks."documentNode.appendChild(
> newNode )'. Jeg vil gerne gøre noget i denne her retning:
> 'outputstream.documentNode.appendChild( newNode )', og efterfølgende åbne
> filen i min texteditor og finde ud af at newNode er skrevet ind i filen på
> det rigtige sted. Med andre ord har jeg brug for en wrapper-klasse, af en
> art. Det må der da være nogen der har tænkt på før. Er der nogen der
kender
> til en klasse af den art?

Jeg kan tilføje at jeg blot har en dokument-node og x antal childNodes til
denne. Jeg står for at skulle tilføje til disse childNodes, og intet andet.
Dvs. strukturen på xml-filen vil ikke ændre sig ud over dette.

/Morten



Thorbjørn Ravn Ander~ (02-03-2004)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 02-03-04 15:59

Morten Nørgaard wrote:
> Hej gruppe.
>
> Jeg kan parse xml fra en xml-fil og oprette en ny xml-fil. Jeg benytter
> mig af streams til dette. Det fungerer sådan set fint nok. Men egentlig
> ville jeg gerne kunne påvirke en xml-fil på samme måde som jeg kan påvirke
> et DOM objekt i hukommelsen. Tag f.eks."documentNode.appendChild(
> newNode )'. Jeg vil gerne gøre noget i denne her retning:
> 'outputstream.documentNode.appendChild( newNode )', og efterfølgende åbne

Hvorfor læser du ikke din XML ind i en DOM?


--
Thorbjoern Ravn Andersen "...plus...Tubular Bells!"

Morten Nørgaard (02-03-2004)
Kommentar
Fra : Morten Nørgaard


Dato : 02-03-04 16:26

> > Jeg kan parse xml fra en xml-fil og oprette en ny xml-fil. Jeg
benytter
> > mig af streams til dette. Det fungerer sådan set fint nok. Men egentlig
> > ville jeg gerne kunne påvirke en xml-fil på samme måde som jeg kan
påvirke
> > et DOM objekt i hukommelsen. Tag f.eks."documentNode.appendChild(
> > newNode )'. Jeg vil gerne gøre noget i denne her retning:
> > 'outputstream.documentNode.appendChild( newNode )', og efterfølgende
åbne
>
> Hvorfor læser du ikke din XML ind i en DOM?

Det gør jeg skam også. Som jeg skriver, 'jeg kan parse xml'. Men pointen er
den at de ændringer jeg foretager mig, bliver skrevet til DOM'en - i
hukommelsen. Jeg vil gerne have at ændringerne i DOM'en afspejler sig i
xml-filen på disken, samtidig med at DOM'en bliver ændret.

Morten


> --
> Thorbjoern Ravn Andersen "...plus...Tubular Bells!"



Thorbjørn Ravn Ander~ (02-03-2004)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 02-03-04 16:42

Morten Nørgaard wrote:

> Det gør jeg skam også. Som jeg skriver, 'jeg kan parse xml'. Men pointen er
> den at de ændringer jeg foretager mig, bliver skrevet til DOM'en - i
> hukommelsen. Jeg vil gerne have at ændringerne i DOM'en afspejler sig i
> xml-filen på disken, samtidig med at DOM'en bliver ændret.

Det kan du - så vidt jeg ved - kun ved at skrive DOM'en ud igen.

De færreste filsystemer er bygget til den slags operationer.
--
Thorbjoern Ravn Andersen "...plus...Tubular Bells!"

Michael Zedeler (02-03-2004)
Kommentar
Fra : Michael Zedeler


Dato : 02-03-04 19:29

Morten Nørgaard wrote:

>>Hvorfor læser du ikke din XML ind i en DOM?
>
> Det gør jeg skam også. Som jeg skriver, 'jeg kan parse xml'. Men pointen er
> den at de ændringer jeg foretager mig, bliver skrevet til DOM'en - i
> hukommelsen. Jeg vil gerne have at ændringerne i DOM'en afspejler sig i
> xml-filen på disken, samtidig med at DOM'en bliver ændret.

Det lyder som en ret speciel funktionalitet, du har brug for. Hvorfor
kan du ikke bare gemme det hele når du er færdig?

Mvh. Michael.


Morten Nørgaard (03-03-2004)
Kommentar
Fra : Morten Nørgaard


Dato : 03-03-04 09:14


"Michael Zedeler" <michael@zedeler.dk> skrev i en meddelelse
news:mr41c.103185$jf4.6200039@news000.worldonline.dk...
> Morten Nørgaard wrote:
>
> >>Hvorfor læser du ikke din XML ind i en DOM?
> >
> > Det gør jeg skam også. Som jeg skriver, 'jeg kan parse xml'. Men pointen
er
> > den at de ændringer jeg foretager mig, bliver skrevet til DOM'en - i
> > hukommelsen. Jeg vil gerne have at ændringerne i DOM'en afspejler sig i
> > xml-filen på disken, samtidig med at DOM'en bliver ændret.
>
> Det lyder som en ret speciel funktionalitet, du har brug for. Hvorfor
> kan du ikke bare gemme det hele når du er færdig?

Hej Michael,

det ender det nok også med at jeg gør. Men det føles som spild af resourcer.
Jeg har en DOM der vil ændre sig løbende over den tid (1-2 timer) en bruger
benytter sig af min applikation, dvs. fra der startes til brugen af
programmet er færdig vil det gå et par timer. Det er lang tid at stole på at
der ikke går noget galt i klientmiljøet, der vil få programmet og dermed
DOM'en til at forsvinde fra hukommelsen - og dermed også slette de
ændringer, brugeren har foretaget. Jeg kan så vælge at gemme hele DOM'en,
som du siger, men i princippet vil jeg så skulle overskrive hele min fil
efter hver eller x antal ændringer - og det virker nu som et spild af tid,
når det nu kun er en lille del der skal tilføjes. Typisk vil DOM'en komme
til at fylde omkring 25-30 KB. Jeg må finde en anden måde at gøre det på -
formentlig ved at skrive ændringer til en tekstfil, og så checke efter om
programmet blev afsluttet ordentligt - for _så_ at skrive DOM'en til fil,
vel vidende at jeg har en tekstfil med ændringerne som backup.

/Morten




> Mvh. Michael.
>



Thorbjørn Ravn Ander~ (03-03-2004)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 03-03-04 13:50

Morten Nørgaard wrote:

> ændringer, brugeren har foretaget. Jeg kan så vælge at gemme hele DOM'en,
> som du siger, men i princippet vil jeg så skulle overskrive hele min fil
> efter hver eller x antal ændringer - og det virker nu som et spild af tid,
> når det nu kun er en lille del der skal tilføjes. Typisk vil DOM'en komme
> til at fylde omkring 25-30 KB. Jeg må finde en anden måde at gøre det på -

Du kunne også autosave den hvert X'ende minut.

--
Thorbjoern Ravn Andersen "...plus...Tubular Bells!"

Michael Zedeler (03-03-2004)
Kommentar
Fra : Michael Zedeler


Dato : 03-03-04 17:40

Morten Nørgaard wrote:
> "Michael Zedeler" <michael@zedeler.dk> skrev i en meddelelse
> news:mr41c.103185$jf4.6200039@news000.worldonline.dk...
>
>>Morten Nørgaard wrote:
>>
>>
>>>>Hvorfor læser du ikke din XML ind i en DOM?
>>>
>>>Det gør jeg skam også. Som jeg skriver, 'jeg kan parse xml'. Men pointen
>
> er
>
>>>den at de ændringer jeg foretager mig, bliver skrevet til DOM'en - i
>>>hukommelsen. Jeg vil gerne have at ændringerne i DOM'en afspejler sig i
>>>xml-filen på disken, samtidig med at DOM'en bliver ændret.
>>
>>Det lyder som en ret speciel funktionalitet, du har brug for. Hvorfor
>>kan du ikke bare gemme det hele når du er færdig?

> det ender det nok også med at jeg gør. Men det føles som spild af resourcer.
> Jeg har en DOM der vil ændre sig løbende over den tid (1-2 timer) en bruger
> benytter sig af min applikation, dvs. fra der startes til brugen af
> programmet er færdig vil det gå et par timer. Det er lang tid at stole på at
> der ikke går noget galt i klientmiljøet, der vil få programmet og dermed
> DOM'en til at forsvinde fra hukommelsen - og dermed også slette de
> ændringer, brugeren har foretaget. Jeg kan så vælge at gemme hele DOM'en,
> som du siger, men i princippet vil jeg så skulle overskrive hele min fil
> efter hver eller x antal ændringer - og det virker nu som et spild af tid,
> når det nu kun er en lille del der skal tilføjes.

Den "rigtige" løsning ville være at gemme en slags "DOM-transaktioner"
på disk, som så kan rulles frem hvis programmet går ned før at man får
committet dem.

> Typisk vil DOM'en komme
> til at fylde omkring 25-30 KB. Jeg må finde en anden måde at gøre det på -
> formentlig ved at skrive ændringer til en tekstfil, og så checke efter om
> programmet blev afsluttet ordentligt - for _så_ at skrive DOM'en til fil,
> vel vidende at jeg har en tekstfil med ændringerne som backup.

Æh. Der skrev du jo selv lidt af det samme. Thorbjørn foreslår autosave
med faste intervaller. Når det er så lille en fil er det vel ok, så
længe at du har en gennemtænkt recovery-rutine som kan rydde op i den
situation at programmet går ned midt imens at det er ved at autosave.

Mvh. Michael.

Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408183
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste