Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [VB.NET]Formattare file XML

    Ho dei file XML(non creati da me) che se li apro col blocco note non hanno la tipica formattazione dei file XML, ma appare tutto su un'unica riga. Dovrei aggiungere la formattazione a questi file, in modo che se li apro con Notepad, li veda correttamente.
    Ho provato con:
    codice:
       Dim myDataSet As New System.Data.DataSet()
                ' Carico il file XML nel dataset 
                myDataSet.ReadXml(PercorsoTxt.Text)
    
                ' Scrivo ed aggiorno i dati nel file XML 
                myDataSet.WriteXml("c:\sample.xml")
    ma all'atto della ReadXml mi da errore "Impossibile aggiunere un vincolo a DataTable 'action' che è una tabella figlia con due relazioni nidificate"
    Il mio metodo per aggiungere la formattazione ai file è corretto? da cosa può dipendere l'errore?
    Ps. ho provato anche col caricare il file XML in una stringa ed fare:
    codice:
    Replace(file,">",">" & VbNewLine)
    però mi va solo a capo ma non da la formattazione dei file XML.

  2. #2
    Per "formattazione" intendi ritorni a capo e indentazione?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Per "formattazione" intendi ritorni a capo e indentazione?
    Si, chiedo scusa se non mi sono spiegato bene.

  4. #4
    Puoi usare Tidy come descritto qui.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Ho dato uno sguardo al link che mi hai gentilmente proposto. In pratica posso utilizzare la DLL o l'EXE a Runtime per formattare i file che ho, giusto?

  6. #6
    Sì, ma il consiglio che ti ho dato era perché pensavo che dovessi solo riformattare questi file per tuo uso e consumo... se invece questo si inserisce in un'applicazione in VB.NET in effetti ti converrebbe usare i metodi che .NET offre. D'altra parte il sistema del dataset non può andare sempre bene (vedi ad esempio il tuo caso) perché un dataset non è in grado di rappresentare tutte le relazioni che possono essere rappresentate in un file XML.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    E' un'applicazione che serve a me in prima persona ma che all'occorrenza potrebbe essere utilizzata da altre persone.
    Cosa mi consigli? Come potrei gestire l'indentazione(visto che il ritorno a capo l'ho fatto)? Dovrei inserire dei TAB?

  8. #8
    "Semplicemente" con:
    codice:
    Dim doc As XmlDocument = New XmlDocument()
                doc.Load(PercorsoFileXMLDaFormattare)
                Dim writer As XmlTextWriter = New XmlTextWriter(PercorsoDestinazione, Nothing)
                writer.Formatting = Formatting.Indented
                doc.Save(writer)

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 © 2025 vBulletin Solutions, Inc. All rights reserved.