Newsgroup: it.comp.lang.visual-basic
Titolo: File XML con VB6

Mi sono studiato un po' come funzionano i file XML.
Come crearli, modificarli eccetera.
 
Non ho trovato nessun esempio di come visualizzarli
dopo averli aperti e testati.
 
Cioč quella tipica visualizzazione come segue:
 
<testata>
    <dettaglio>
        <testo>ABCD</testo>
    </dettaglio>
</testata>
 
Ogni suggerimento č gradito.
 
Saluti
Sauro 
 
 

 dopo averli aperti e testati.
 
Non sono sicuro di aver capito bene.
Una RichTextBox non va bene? Notepad...
 
-- 
Greg

 Greg
 
Il file XML viene salvato come un'unica stringa
senza nessun ritorno a capo.
Solo un programma che "conosca" la sua logica
può ricostruire un testo simile al mio esempio.
 
Ciao Greg
Sauro 
 
 

 Ogni suggerimento è gradito.
 
 
Messa così e' piu semplice di quello che appare:
 
<A>
 <B>testo testo testo</B>
 <C>
    <D1>ciao</D1>
    <D2>a</D2>
    <D3>tutti</D3>
 </C>
</A>
 
Facci caso: A e C provocano un "a capo e rientra", B e C no, quindi
considerandolo come un'unica stringa... solo quando a ">" segue "<"
si va a capo, "rientrando" il testo, incontrando il "</" si va a capo
dopo il ">" e si decrementa il contatore di "rientri".

 dopo il ">" e si decrementa il contatore di "rientri".
 
Devo dire che non ci avevo proprio pensato.
Perň non č sufficiente a spiegare il file xml che tra l'altro
visualizza con colori diversi i dati rispetto allo schema.
Prova a salvare un file TestXML.XML con dentro i dati
del tuo esempio.
Poi da esplora risorse ci fai sopra un doppio click.
 
Ciao Franz
Sauro 
 
 

 del tuo esempio.
 
basta un contatore di tag aperti e chiusi e/o il numero di rientri
che si è effettuato e colorare di conseguenza, in ogni caso la
colorazione e i tipo di "rientro" e' arbitrario: firefox, edge e IE
lo fanno tutti in modo diverso, non mi stupirei che altri editor
seguano una "loro" regola cromatica e di rientro.

 Sauro
 
Io uso Notepad++
Visualizza perfettamente
 

 Visualizza perfettamente
 
L'ho appena scaricato e provato.
I colori sono ok ma manca il ritorno a capo
Non so il rientro
 
C'è forse da impostare qualcosa?
 
Ciao Roberto e grazie 
 
 


Manda il file che vediamo
 

 Manda il file che vediamo
 
Ho trovato una Function VB6 che fa l'indent di un file XML.
Era quello che mi serviva e quindi ho risolto.
 
Grazie 1000 comunque per l'offerta di aiuto.
 
Ciao Roberto
Sauro 
 
 

 Era quello che mi serviva e quindi ho risolto.
 
Se tu la potessi condividere qua....grazie :)
 
-- 
Greg

> Se tu la potessi condividere qua....grazie :)
 
Ecco qua:
 
Public Sub FormatDocToFile(ByVal doc As MSXML2.DOMDocument, _
                            ByVal FileName As String)
    'Nel progetto serve il riferimento a:
    'Microsoft XML, version 2.0
    '
    'Reformats the DOMDocument "Doc" into an ADODB.Stream
    'and writes it to the specified file.
    '
    'Note the UTF-8 output never gets a BOM.  If we want one we
    'have to write it here explicitly after opening the Stream.
    Dim rdrDom As MSXML2.SAXXMLReader
    Dim stmFormatted As ADODB.Stream
    Dim wtrFormatted As MSXML2.MXXMLWriter
 
    Set stmFormatted = New ADODB.Stream
    With stmFormatted
        .Open
        .Type = adTypeBinary
        Set wtrFormatted = New MSXML2.MXXMLWriter
        With wtrFormatted
            .omitXMLDeclaration = False
            .standalone = True
            .byteOrderMark = False 'If not set (even to False) then
                                   '.encoding is ignored.
            .encoding = "utf-8"    'Even if .byteOrderMark = True
                                   'UTF-8 never gets a BOM.
            .Indent = True
            .Output = stmFormatted
            Set rdrDom = New MSXML2.SAXXMLReader
            With rdrDom
                Set .contentHandler = wtrFormatted
                Set .dtdHandler = wtrFormatted
                Set .errorHandler = wtrFormatted
                .putProperty 
"
http://xml.org/sax/properties/lexical-handler
", _
                             wtrFormatted
                .putProperty 
"
http://xml.org/sax/properties/declaration-handler
", _
                             wtrFormatted
                .parse doc
            End With
        End With
        .SaveToFile FileName
        .Close
    End With
End Sub
 
 
Ciao Greg
Sauro