Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857

    generazionedi un file xml

    Il mio bel gestore generico ashx mi deve restituire un file in formato xml (pesco le coordiante da un db e creo l'xml da dare in pasto a una mappa per mettere i segnalini).
    In calce metto il codice che uso... dal messaggio che ottengo sembra che l'xml generato non sia correttamente formattato ma non capisco cosa sbaglio...

    Errore interpretazione XML: non well-formed
    Indirizzo: http://localhost:60390/usercontrols/markers.ashx
    Riga numero 4, colonna 11:</markers>

    codice:
     Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
            Dim strsql As String = ""
            Dim lat As Decimal = 0
            Dim lng As Decimal = 0
            Dim trovato As Boolean = False
            Dim dt As New DataTable
            
            Using output As New MemoryStream()
    
                Dim writer = New XmlTextWriter(output, Encoding.Default)
                writer.Formatting = Formatting.Indented
                ' aggiungo l'intestazione XML
                writer.WriteRaw("<?xml version=""1.0"" encoding=""UTF-8""?>")
                writer.WriteStartElement("markers")
                
                'leggo datab con coordinate
                ....
                        For Each row In dt.Rows
                            lat = 0
                            lng = 0
                            readcoords(row!an_conto, lat, lng, trovato)
                            If trovato Then
                                'apre tag marker
                                writer.WriteStartElement("marker") 
    
                                writer.WriteAttributeString("id", i)
                                writer.WriteAttributeString("name", row!nomemarker.ToString)
                                writer.WriteAttributeString("address", row!indirizzo.ToString)
                                writer.WriteAttributeString("lat", lat)
                                writer.WriteAttributeString("lng", lng)
                                writer.WriteAttributeString("type", "")
                                
                                'chiude tag marker
                                writer.WriteEndElement() 
                                i += 1
                            End If
                        Next
    
    
    
                    End If
                End Using
                writer.WriteEndElement() 'chiude tag markers
                writer.Flush()
                writer.Close()
    
                Try
                    'Set http header in modo che la risposta del server sia del tipo xml (fondamentale!!!)
                    context.Response.ContentType = "text/xml"
                    context.Response.BinaryWrite(output.GetBuffer())
    
                Catch ex As Exception
                    context.Response.Write("Si è verificato un errore durante la generazione del file: chiudere la pagina e riprovare.")
                Finally
    
                End Try
    
            End Using
    
        End Sub
    Non mi va in exception ma l'xml creato non piace neanche al browser...
    Questo è l'xml di esempio che sto cercando di replicare
    https://storage.googleapis.com/mapsd...apmarkers2.xml
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  2. #2
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    Eppure non capisco, l'xml lo scrive in effetti: nel sorgente della pagina con l'errore trovo
    codice:
    <?xml version="1.0" encoding="UTF-8"?>
    <markers>
         <marker id="1" name=".mark1" address="VIA PUCCINI, 17" lat="-33,8632760" lng="151,2079770" type="" />
    </markers>
    solo che a seguire la chiusura del tag markers ci attacca una botta di caratteri illeggibili...


    Nell'esempio che fanno su googleDev poi c'è un JS che legge il mio XML e lo trasforma in markers su una mappa così:
    codice:
    var infoWindow = new google.maps.InfoWindow;
              // Change this depending on the name of your XML file
              //downloadUrl('https://storage.googleapis.com/mapsdevsite/json/mapmarkers2.xml', function(data) {
            downloadUrl('http://localhost:60390/usercontrols/markers.ashx', function (data) {
                      var xml = data.responseXML;
                var markers = xml.documentElement.getElementsByTagName('marker');
                Array.prototype.forEach.call(markers, function(markerElem) {
    ...
    ma se non gli passo l'xml well formed evidentemente non può funzionare
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    sei sicuro che non ci voglia alla fine un Current.Response.End()
    Pietro

  4. #4
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    ach no dove?
    dopo context.Response.BinaryWrite(output.GetBuffer())?
    Current? Vuoi dire context... Buh ce l'ho messo ma ottengo lo stesso risultato...
    ?
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    ho guardato molto velocemente miei vecchi lavori e noto che metto sempre una cosa del genere

    System.Web.HttpContext.Current.Response.End()

    nel tuo caso dopo context.Response.BinaryWrite(output.GetBuffer())

    Ma sto andando a memoria (e non è che ne abbia molta)
    Pietro

  6. #6
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    none, stesso risultato..
    se digito l'url del file ashx (http://localhost:60390/usercontrols/markers.ashx) dovrebbe mostrarmi l'xml, giusto?
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    credo proprio di si


    ps. io, almeno per il momento, giusto per capire un poco, farei una pagina aspx che mi restituisca un xml
    Pietro

  8. #8
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    cambia niente
    Nel frattempo ho cambiato due cosette, non uso più il xmltextwriter ma il xmlwriter
    Il sorgente che mi mostra il browser del risultato dell'elaborazione della mia ashx è questo
    Allegato 29547
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  9. #9
    Quote Originariamente inviata da supermac Visualizza il messaggio
    Eppure non capisco, l'xml lo scrive in effetti: nel sorgente della pagina con l'errore trovo
    codice:
    <?xml version="1.0" encoding="UTF-8"?>
    <markers>
         <marker id="1" name=".mark1" address="VIA PUCCINI, 17" lat="-33,8632760" lng="151,2079770" type="" />
    </markers>
    solo che a seguire la chiusura del tag markers ci attacca una botta di caratteri illeggibili...
    ciao,
    oltre al problema dei caratteri inlegibili, credo dovresti scrivere scrivere lat e lng con il . come separatore
    dei decimali.

    HTH

  10. #10
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,857
    you're right (è un problema che avrei risolto dopo ma grazie)
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.