Toon posts:

[JS] DOM met DOM vergelijken

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

ik heb een applicatie, deze houd zijn data vast in een DomDocument, XML dus. Op een gegeven moment kijk ik of mijn Dom is gewijzigt. Dit doe ik door voor eventuele bewerking een hash op te slaan van de xmlnode.xml en deze te vergelijken met de (misschien nieuwe) hash na bewerking.
Maar dit is geen goede manier om XML met elkaar te vergelijken, nu word het dus vergeleken als string. En als attributen in een andere volgorde in de XML is gekomen denkt de applicatie dat de XML is gewijzigt terwijl dit niet het geval is, hetzelfde is het geval met witruimte. De ene keer bevat de xmlnode.xml wel tabs en andere witruimte en de andere keer niet, wederom denkt de applicatie dat de XML gewijzigt is terwijl de inhoud nog hetzelfde is.
Nu kan ik wel een functie gaan schrijven die het hele XML document doorloopt maar dit lijkt mij niet de efficienste manier. Hebben jullie nog suggesties? Ik ben vast niet de enige die tegen dit probleem aanloopt.

  • Zoefff
  • Registratie: September 2001
  • Laatst online: 16:32

Zoefff

❤ 

Je zou in ieder geval de huidige manier kunnen verbeteren door alle witruimte te strippen alvorens je de hash maakt? :)


FotoblogWerkaandemuur.nlMoestuincursus.nlTwitter


Verwijderd

Topicstarter
Dat doe ik nu ook, daarvoor was mijn vorige topic haha... maar als men nu een spatie in tekst typt, is het document wel gewijzigt maar herkend de applicatie niet dat het gewijzigd is :)

  • Garyu
  • Registratie: Mei 2003
  • Laatst online: 13:52

Garyu

WW

Tsja, hoe groot is zo'n lap XML ongeveer? Eventueel zou het bijhouden van XML-tags nog wel mogelijk moeten zijn als de hoeveelheid beperkt blijft?

It's Difficult to Make Predictions - Especially About the Future


  • Zoefff
  • Registratie: September 2001
  • Laatst online: 16:32

Zoefff

❤ 

Verwijderd schreef op dinsdag 05 december 2006 @ 15:49:
Dat doe ik nu ook, daarvoor was mijn vorige topic haha... maar als men nu een spatie in tekst typt, is het document wel gewijzigt maar herkend de applicatie niet dat het gewijzigd is :)
Dat is ook nog wel op te vangen door alleen de whitespace tussen een sluit- en starttag te strippen toch? Een regex die zoekt op </*> en <*> dus, en alles daartussen botweg verwijderd.


FotoblogWerkaandemuur.nlMoestuincursus.nlTwitter


Verwijderd

Topicstarter
Zoefff schreef op dinsdag 05 december 2006 @ 15:54:
[...]

Dat is ook nog wel op te vangen door alleen de whitespace tussen een sluit- en starttag te strippen toch? Een regex die zoekt op </*> en <*> dus, en alles daartussen botweg verwijderd.
Ook in attributen kan een spatie worden gebruikt, zoals een alt tekst voor een afbeelding

  • Zoefff
  • Registratie: September 2001
  • Laatst online: 16:32

Zoefff

❤ 

Maar attributen staan bínnen de tags, dus die worden bij bovenstaande methode buiten beschouwing gelaten. Je stript alleen de whitespace tussen de tags, dus als je een attribuut wijzigt verandert de hash ook.


FotoblogWerkaandemuur.nlMoestuincursus.nlTwitter


Verwijderd

Topicstarter
Zoefff schreef op dinsdag 05 december 2006 @ 15:57:
Maar attributen staan bínnen de tags, dus die worden bij bovenstaande methode buiten beschouwing gelaten. Je stript alleen de whitespace tussen de tags, dus als je een attribuut wijzigt verandert de hash ook.
Hmmm, er zijn 2 verschillende spaties, daarmee moet ik wel wat kunnen.... want de gewone spatie kan overal (waar t volgens xml standaard mag) worden ingevoegd in mijn xml document en die moet ook blijven, maar als xmlnode.xml die zou toevoegen zou ik t ook in mijn content moeten zien. Dus ik denk dat ik er vanuit kan gaan dat dat niet gebeurd. Nu heb ik dus alleen nog het probleem met volgorde...

Verwijderd

Topicstarter
*schopje*

Verwijderd

Topicstarter
nog echt niemand?
Pagina: 1