#2 Tak for svaret, men det er ikke problemet hvordan der arbejdes med XML i C# - det er jeg klar over.
Det er mere hvordan man i applikationen bestemmer hvad der skal fjernes og tilføjes for at gå fra version 1 til version 2 og omvendt.
--
#3
Det kan RegEx klare, men det er lidt en kompliceret affære, så du skal nok læse lidt om det først.
--
If it's not on fire, it's a software problem.
http://www.OVRKLL.com[...] #4 Det kan godt være RegEx er løsningen. Jeg kender lidt til det, men ikke så kompliceret som dette. Så må jeg til at læse :|
Andre der har noget at byde ind med?
--
Drop regex.
Du skal ikke til at bruge regex. Læs dit dokument som et DOMdocument. Løb det igennem og lav de ændringer du skal. Det er sådan du skal gøre. Det andet er noget ROD!
Det andet er "lettere" at lave. Men det bliver noget rod som du aldrig kan lave om i. Du glemmer hvad der sker, og dine ændringer kommer til at have utilsigtede følger.
http://msdn.microsoft.com[...]
Det er den eneste rigtige måde at gøre det på. Pas på med at behandle et XML dokument som en tekststreng. Det er fyfy.
Hav lidt tålmodighed og lær det på den rigtige måde. Du har fået linket til dokumentationen, men det er småt med eksempler hos MS. Brug google til at finde eksempler.
--
Gæstebruger, opret dit eget login og få din egen signatur. #0 Mangler måske lidt mere info , men:
Version 2->1:
Det kommer selvfølgelig an på hvordan din XML file er:
1. Hvis strukturen/elementerne er ens (navn), så er det jo let. Så er det bare at læse de elementer, som findes for version 1 og registrere dem, som ikke kunne læses = version 2 unikke elementer, hvilket er let med XmlDocument.
2. Hvis stukturen og elementerne ikke ens, må du vel gå den lange vej og skrive en importer/eksporter for begge versioner. Jeg kunne forestille mig at læsningen foregår til samme data object (?), hvis begge XML filer, skal bruges i samme kontekst i programmet? Så er det bare at registrere, hvilke variable m.v. som bliver indlæst og hvilke, som ikke bliver?
--
Any intelligent fool can make things bigger,more complex,and more violent.It takes a touch of genius and courage to move in the opposite direction
Jeg forstod ikke problemstillingen.
Bestemmer du selv hvilke felter der findes i XML dokumenterne for hver "version"?
Så du ved hvilke felter du har at gøre med, alt efter hvilken version du står med?
Eller ønsker du dynamisk at kunne sammenligne to XML dokumenter, og lave en sammenligning af forskellene?
Jeg forstår ikke formuleringen "Hvordan jeg kan bestemme hvad der skal fjernes/tilføjes for at gå fra version X/Y til version Y/X" ... kan du omformulere den?
--
Bevar naturen - sylt et egern
#6 Jeg har også selv googlet lidt med xml og regex sammen og det anbefales ikke jf.
http://stackoverflow.com[...]
Kigger lige på det, og vender tilbage.
#7 Det er nok punkt 2 der skal bruges, men det skal forstås sådan at der kun findes en fysisk xml-fil, som jeg kan loade ind. Og så afhængig af om brugeren ønsker at arbejde med version 1 eller version 2 skal der tilføjes flere funktioner hvis version 2 vælges - dette skal ske runtime.
#8 Jeg ved til dels hvilke felter der findes, men et element kan dog indeholde x antal childs. Så ja, jeg ønsker at kunne sammenligne XML dokumenterne.
--
#8
Omformulering: Jeg laver en klasse med en funktion der kan gå fra version 1 til 2 og en funktion der kan gå fra version 2 til 1.
Dvs. i forhold til den stump XML jeg har skrevet skal værdien i denne xPath: Root/Device/Command ændres fra "Data" til "Data2" hvis man ønsker en version 2.
Og Root/Device/Command ændres fra "Data2" til "Data".
--
#6
Hmm... En gæst kommer dumpende med navnet 'C# guru' og emailadressen '
[email protected]' og underkender anvendelsen af RegEx - hvor troværdigt :)
Anyway, du har ret; jeg havde ikke overvejet, at XML-strukturen er så gennemført, at RegEx er overflødigt.
--
If it's not on fire, it's a software problem.
http://www.OVRKLL.com[...] #12 Yes sir! Tror det er noget i retning af det jeg leder efter. Kigger lige på det!
--
#12 Nu har jeg kigget lidt på det, og det er ikke helt som jeg ønsker det, men kan se der vist ikke er nogen let løsning på problemet...
Tak for svar alle!
--
#11
Det er vel lige så - eller mere - troværdigt, som dine input i #2+4.
Han har ret i at det er uklogt at betragte XML som tekst. Jeg forstår ikke bruger/gæst problematikken... Han siger noget mere klogt end andre i tråden, men skal alligevel li' ha' et stik for at være gæst.
--
Bevar naturen - sylt et egern
#15
Jeg pointerede bare, at det er lidt inkongruent, at han tog sig tid til at skrive 10 linjers svar på spørgsmålet, kalder sig selv guru og alligevel foretrækker at forblive anonym og endda bruger en yderst useriøs fake mail... Men det må han jo selv om.
--
If it's not on fire, it's a software problem.
http://www.OVRKLL.com[...] #16 hvorfor forholder du dig ikke bare til indholdet i stedet? Nu gør du dig jo selv til grin..
--
Later equals never.
#17
Jeg har aldrig påtvunget dig at dele mine holdninger, og der er ikke meget mere at sige om origo, så lad da tråden ligge?
--
If it's not on fire, it's a software problem.
http://www.OVRKLL.com[...]