Forum
test nyhed
2
Ny test tråd.
32
Test tråd 2 til emails
10
test
0
Test test
4
Test redigering
2
Hjemmeserver for 2 personer udaftil
6
Internet problemer
7
MOZA Racing og Automobili Lamborghini Squadra Corse bringer Lamborghini DNA'et til sim racing
4
Kommentarer til dette kort?
56
Thomas tester en nyhed
29
Tester billeder
2
Stop Destroying Videogames (EU underskrift indsaml...
83
Husk at nulstille password for at logge ind
0
Dette er en test artikel
0
HJÆLP oplader til bærbar.
10
Minecraft Java Server problemer
1
prosonic tv 55"
4
Ram
21
Købe 3070 nu eller vente til 5000 serie kommer
41
Tesla livestream, Robotaxi, hvem ser med?
44
Ny server
3
Opgradering af PC - 5 år gammel
26
Ny PC - frisk install af win 11 går i sort skærm
26
Samle selv PC
9
Intel 200 Arrow Lake soon(tm)
4
AMD driver ? fif springer i ydelse
11
Waoo Fiber egen router
15
Digitizer
1
Forsinke hdmi signal 3 timer
2
Køb & Salg
S: RTX 5090
4
S: Skrig sælges
0
Hol.dk's Uofficielle White/Black liste V3
2067
K: RTX 6090
2
S: Test tråd
0
S: vman bruger
4
S: Dell Monitor G2524H
0
S: Dell Monitor G2524H
0
V: PowerColor AX7990 6GBD5
11
V: b650m, 7600, 32GB D5, 6650xt, 1TB SSD
4
S: Alienware AW2723DF
4
K: intel 12-14 gen bundle, evt pc uden gpu
2
S: Intel 13700K
6
S: Akko 5087B tastatur
7
S: Kingston FURY Beast DDR5-6000 - 64GB
7
S: Asus RT-AX86U
4
V: macbook pro 2016
1
S: Lian Li PC201B + Hotswap trays
2
V: Bundle; X570 mobo, Ryzen 5900X, 32GB Ram(LED)
9
S: R7 5700G, RTX 3060ti, 16GB DDR4, 1TB NVME
4
S: Bundle AM3+ CPU/Bundkort/RAM
2
K: 32 GB DDR4 RAM, 3600 MHz, CL 16
2
B: RTX4070 Ti til RTX4070 Ti
2
S: EVGA 980ti KingPin
9
V: Komplet system 4690K 1070TI
1
S: DVD/VHS brænder
2
K: 2x8gb ddr3 eller lignende
4
K: Hvidt tastatur, evt hvid mus og headset
3
B: 4080 super til 4090
4
V: RX 7700 XT Red Devil
9
- Denne tråd er over 6 måneder gammel
Er du sikker på, at du har noget relevant at tilføje?
XML og C#
Af Jesper Lauridsen Supporter
Hej
Jeg skal have fremstillet en form for versionsstyring.
Det beskrives bedst ved at sammenligne med word.
Når et word2007 dokument skal gemmes som word2003 er der funktionalitet der ikke understøttes og dermed går tabt.
Jeg har nogle filer skrevet i xml. Filen skal konverteres fra version 2 til version 1.
F.eks.
Version 1:
Data
Version 2:
Data2
Hvordan kan man i sin applikation bestemme hvad der skal fjernes for at få version 1?
Og hvordan kan jeg bestemme hvad der skal tilføjes for at gå fra version 1 til version 2?
Jeg er klar over at det er et rimelig abstrakt spørgsmål, og at man skal have hardcodet i applikationen hvilke ændringer der skal foretages.
Jeg har tænkt på at lave en klasse der indeholder disse informationer.
Ændringer:
- Fra 1 til 2 : Root/Device/Command = Data2
- Fra 2 til 1 : Root/Device/Command = Data
Version 2 understøttes kun hvis applikationen er opdateret til at kunne håndtere den.
Skriv hvis der er spørgsmål!
Jeg skal have fremstillet en form for versionsstyring.
Det beskrives bedst ved at sammenligne med word.
Når et word2007 dokument skal gemmes som word2003 er der funktionalitet der ikke understøttes og dermed går tabt.
Jeg har nogle filer skrevet i xml. Filen skal konverteres fra version 2 til version 1.
F.eks.
Version 1:
Data
Version 2:
Data2
Hvordan kan man i sin applikation bestemme hvad der skal fjernes for at få version 1?
Og hvordan kan jeg bestemme hvad der skal tilføjes for at gå fra version 1 til version 2?
Jeg er klar over at det er et rimelig abstrakt spørgsmål, og at man skal have hardcodet i applikationen hvilke ændringer der skal foretages.
Jeg har tænkt på at lave en klasse der indeholder disse informationer.
Ændringer:
- Fra 1 til 2 : Root/Device/Command = Data2
- Fra 2 til 1 : Root/Device/Command = Data
Version 2 understøttes kun hvis applikationen er opdateret til at kunne håndtere den.
Skriv hvis der er spørgsmål!
For lige at genbruge mit tidligere spørgsmål på Eksperten:
http://www.eksperten.dk/spm/817451
Til selve erstatningen kan RegEx sandsynligvis være behjælpelig:
http://www.google.com/search?source...
http://www.eksperten.dk/spm/817451
Til selve erstatningen kan RegEx sandsynligvis være behjælpelig:
http://www.google.com/search?source...
#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.
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.
Det kan RegEx klare, men det er lidt en kompliceret affære, så du skal nok læse lidt om det først.
#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?
Andre der har noget at byde ind med?
C# guru
#6
Gæst
02-04-2009 09:32
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/en-us/lib...
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.
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/en-us/lib...
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.
#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?
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?
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?
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?
#6 Jeg har også selv googlet lidt med xml og regex sammen og det anbefales ikke jf. http://stackoverflow.com/questions/...
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.
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".
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 'dillar@daller.dk' 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.
Hmm... En gæst kommer dumpende med navnet 'C# guru' og emailadressen 'dillar@daller.dk' 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.
#10 måske MS's XML Power Tools, herunder XML Diff. http://msdn.microsoft.com/en-us/lib... er passende i din problem stilling?
#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!
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.
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.
#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.
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.
#16 hvorfor forholder du dig ikke bare til indholdet i stedet? Nu gør du dig jo selv til grin..
#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?
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?