RulleRimfrost Skrevet 7. juni 2011 Skrevet 7. juni 2011 Jeg skal levere xmlfiler jeg mistenker blir behandlet som linjedata hos mottaker. Bruker vb.net, og loadXml for å få pene innrykk i filen. Jeg har f eks noen tomme elementer som skal leveres på en linje : <acs></acs> Siden det er endel løkkelogikk innimellom nodene, leser jeg først hele dokumentet inn i en streng. Deretter bruker jeg myXml.loadXml(myString) for å skape xml-dokumentet. Problemet er at når jeg åpner resultatfilen i Notepad har det sneket seg inn linjeslutt mellom taggene i elementet, og det avviker fra spec. Kan jeg få loadXml til å la være å sette inn linjeslutt mellom tagger i tomme elementer? F eks : myXml.loadXml("<test>hei</test>" + vbNewLine + "<acs></acs>") myXml.save("testfile.xml") gir følgende uønskede resultat : <test>hei</test> <acs> </acs>
MailMan13 Skrevet 7. juni 2011 Skrevet 7. juni 2011 (endret) Ville ikke bygget XML i strings... Du kan evt. se på å sette opp en XmlTextWriter mot en fil, og se hva settings du har på den, går ut fra det er noe trøbbel i settings/format på default xmlwriter'en der. Anyway, XElement er måten å bygge xml i kode nå om dagen. I VB har du xml-literaler også til sånt (implisitte XElement): Dim doc = <root> <test>hei</test> <acs></acs> </root> Da du ut: <root> <test>hei</test> <acs></acs> </root> Evt. bygge mer dynamisk: Dim doc = <root/> doc.Add(New XElement("test", "hei")) doc.Add(<acs></acs>) Jeg skal levere xmlfiler jeg mistenker blir behandlet som linjedata hos mottaker. Høres ut som en veldig Bad Idea ™ Edit: XmlDocument.PreserveWhitespace er kanskje det du ser etter. Endret 7. juni 2011 av MailMan13
GeirGrusom Skrevet 7. juni 2011 Skrevet 7. juni 2011 (endret) Jeg skal levere xmlfiler jeg mistenker blir behandlet som linjedata hos mottaker. Bruker vb.net, og loadXml for å få pene innrykk i filen. Jeg har f eks noen tomme elementer som skal leveres på en linje : <acs></acs> Siden det er endel løkkelogikk innimellom nodene, leser jeg først hele dokumentet inn i en streng. Deretter bruker jeg myXml.loadXml(myString) for å skape xml-dokumentet. Problemet er at når jeg åpner resultatfilen i Notepad har det sneket seg inn linjeslutt mellom taggene i elementet, og det avviker fra spec. Kan jeg få loadXml til å la være å sette inn linjeslutt mellom tagger i tomme elementer? F eks : myXml.loadXml("<test>hei</test>" + vbNewLine + "<acs></acs>") myXml.save("testfile.xml") gir følgende uønskede resultat : <test>hei</test> <acs> </acs> Det er fullstendlig lovlig XML, så ser ikke problemet. Hvis de ikke er istand til å parse XML på en skikkelig måte i andre enden har de et vanvittig stort problem som heter "inkompetanse", og dette er neppe det første, eller største problemet du kommer til å støte på. Endret 7. juni 2011 av GeirGrusom
RulleRimfrost Skrevet 8. juni 2011 Forfatter Skrevet 8. juni 2011 Takker. Prøvde meg med XElement men ramlet inn i .net 4 og linq. Jeg er desverre belemret med Server 2003 og IIS6 på et svært lukket domene, så gav heller opp og konverterte skiten til StreamWriter med lassevis av vbTab og vbNewLine. Får heller slette navnet mitt fra kompilasjonen i tilfelle noen åpner den før jeg får tid til å konvertere Angående å be bestiller følge standarder, så tør jeg ikke det. Når tid er penger blir prinsipper kanonføde.
GeirGrusom Skrevet 8. juni 2011 Skrevet 8. juni 2011 (endret) Noe sier meg at bestiller har skrevet en egen XML parser ^^ Lykke til videre! Jeg forestiller meg at dette ikke er første, eller siste gang du møter på rariteter som bestiller bedriver. Endret 8. juni 2011 av GeirGrusom
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå