Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Programmering og webdesign \ Programmering
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 Supporter Jesper Lauridsen | 02-04-2009 08:23 | 1357 visninger | 18 svar, hop til seneste
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!
--
#1
Jesper Lauridsen
Supporter
02-04-2009 08:26

Rapporter til Admin
XML-koden gik ikke så godt :s Kommer her: http://filupload.dk[...]
--
#2
OVRKLL
Nørd
02-04-2009 08:38

Rapporter til Admin
For lige at genbruge mit tidligere spørgsmål på Eksperten: http://www.eksperten.dk[...] Til selve erstatningen kan RegEx sandsynligvis være behjælpelig: http://www.google.com[...]
--
If it's not on fire, it's a software problem. http://www.OVRKLL.com[...]
#3
Jesper Lauridsen
Supporter
02-04-2009 08:51

Rapporter til Admin
#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.
--
#4
OVRKLL
Nørd
02-04-2009 09:02

Rapporter til Admin
#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[...]
#5
Jesper Lauridsen
Supporter
02-04-2009 09:24

Rapporter til Admin
#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?
--
#6
C# guru
Gæst
02-04-2009 09:32

Rapporter til Admin
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.
#7
Scheea2000
Monster Supporter
02-04-2009 09:40

Rapporter til Admin
#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
#8
Sebastian|
Maxibruger
02-04-2009 09:40

Rapporter til Admin
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
#9
Jesper Lauridsen
Supporter
02-04-2009 09:54

Rapporter til Admin
#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.
--
#10
Jesper Lauridsen
Supporter
02-04-2009 10:12

Rapporter til Admin
#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".
--
#11
OVRKLL
Nørd
02-04-2009 10:28

Rapporter til Admin
#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
Arnbak
Ultra Nørd
02-04-2009 10:30

Rapporter til Admin
#10 måske MS's XML Power Tools, herunder XML Diff. http://msdn.microsoft.com[...] er passende i din problem stilling?
--
Later equals never.
#13
Jesper Lauridsen
Supporter
02-04-2009 10:41

Rapporter til Admin
#12 Yes sir! Tror det er noget i retning af det jeg leder efter. Kigger lige på det!
--
#14
Jesper Lauridsen
Supporter
02-04-2009 11:05

Rapporter til Admin
#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!
--
#15
Sebastian|
Megabruger
02-04-2009 12:25

Rapporter til Admin
#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
#16
OVRKLL
Nørd
02-04-2009 13:14

Rapporter til Admin
#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[...]
#17
Arnbak
Ultra Nørd
02-04-2009 13:44

Rapporter til Admin
#16 hvorfor forholder du dig ikke bare til indholdet i stedet? Nu gør du dig jo selv til grin..
--
Later equals never.
#18
OVRKLL
Nørd
02-04-2009 15:35

Rapporter til Admin
#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[...]

Opret svar til indlægget: XML og C#

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning