Avatar billede pcl Nybegynder
10. september 2007 - 12:06 Der er 10 kommentarer og
1 løsning

Fjern sidste tegn i xml fil

Hej,

Jeg har en vb 2005 app. der generer en xml fil.
På test server virker alt fint, men på produktion serveren kommer der et 'space' allesidst i xml filen, efter selve indholdet.
Kundens validator (som er i java) kommer med denne fejlmeddelse
'Content is not allowed in trailing section'.

Mit dokument bliver lavet med denne kode.

Dim ws As XmlWriterSettings = New XmlWriterSettings()
ws.Indent = False
ws.CheckCharacters = True
ws.Encoding = System.Text.Encoding.UTF8

Try

Using writer As XmlWriter = XmlWriter.Create(XmlFile, ws)
  With writer
  .WriteStartDocument()
  .WriteStartElement("listings")
  ...mere indhold
  .WriteFullEndElement() 'listings
  .WriteEndDocument()
  .Close()
End With

Er der nogen der kan hjælpe?
Avatar billede nielle Nybegynder
10. september 2007 - 19:37 #1
Noget i stil med dette?

        Dim ws As XmlWriterSettings = New XmlWriterSettings()

        ws.Indent = False
        ws.CheckCharacters = True
        ws.Encoding = System.Text.Encoding.UTF8
        ws.ConformanceLevel = ConformanceLevel.Document
        ws.NewLineChars = ""

        Try
            Using writer As XmlWriter = XmlWriter.Create(XmlFile, ws)
                With writer
                    .WriteStartDocument()
                    .WriteStartElement("listings")
                    ' ...mere indhold
                    .WriteFullEndElement() 'listings
                    .WriteEndDocument()
                    .Close()
                End With
            End Using
        Catch
        End Try
Avatar billede nielle Nybegynder
18. september 2007 - 08:07 #2
Hvad med noget respons?
Avatar billede pcl Nybegynder
18. september 2007 - 09:25 #3
Ja, hvordan mener du præcis?
Forsøget med
ws.ConformanceLevel = ConformanceLevel.Document
ws.NewLineChars = ""
hjalp desværre ikke.
Avatar billede nielle Nybegynder
18. september 2007 - 09:30 #4
Den slags oplysninger er jo rare at få. Ellers ved man ikke om problemet er blevet løst eller ej.

Hvordan ved du forresten at der kommere et space i enden af filen på produktionserveren?

(Faktisk burde validatoren ignorere dette da det vist næppe kan siges at være ulovlig XML.)
Avatar billede pcl Nybegynder
18. september 2007 - 10:07 #5
Joh, Filer der køres på produktionsserveren kan jeg bagefter downloade fra composites server hvor app´en executer.
Kan det hjælpe at se koden til app´en?
Den skal nok sendes til din email.
Avatar billede nielle Nybegynder
18. september 2007 - 18:10 #6
Prøv at kalde Flush() lige før din Close().
Avatar billede pcl Nybegynder
19. september 2007 - 12:46 #7
Det hjalp sgu heller ikke, det er for mystisk!
Avatar billede nielle Nybegynder
19. september 2007 - 18:32 #8
Har du mulighed for at gemme dit output i memory først (f.eks. i en MemoryStream). Så burde du kunne køre en Trim() på det før at du skriver til fil. Godt nok lidt bøvlet - men siden at systemet nu opføre sig lidt underligt.

Et spørgsmål: Er du 100 % sikker på at det er det der mellemrum som driller? Du kunne jo prøve at downloade, redigere det vær og så uploade filen igen. Det ville være rigtigt surt at opdage at det i virkeligheden var et helt andet sted den var galt.
Avatar billede nielle Nybegynder
01. oktober 2007 - 19:58 #9
Hmmm?
Avatar billede pcl Nybegynder
08. oktober 2007 - 19:42 #10
Problemet opstod et andet sted.
Tak for hjælpen. Opret et svar , så får du point for din hjælp.
Avatar billede nielle Nybegynder
08. oktober 2007 - 19:47 #11
Svar :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester