Desidero stampare la proprietà InnerXml per la visualizzazione in una pagina Web. Mi piacerebbe vedere il rientro dei vari tag. C'è un modo semplice per farlo?C'è un modo rapido per formattare un XmlDocument per la visualizzazione in C#?
risposta
Ecco una piccola lezione che ho messo insieme qualche tempo fa per fare esattamente questo.
Presume che si stia lavorando con l'XML in formato stringa.
public static class FormatXML
{
public static string FormatXMLString(string sUnformattedXML)
{
XmlDocument xd = new XmlDocument();
xd.LoadXml(sUnformattedXML);
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
XmlTextWriter xtw = null;
try
{
xtw = new XmlTextWriter(sw);
xtw.Formatting = Formatting.Indented;
xd.WriteTo(xtw);
}
finally
{
if(xtw!=null)
xtw.Close();
}
return sb.ToString();
}
}
È ancora più semplice quando lo aggiungi come metodo di estensione :) – Urda
Ti amo !!!!!!!!!!!!!! – ChandlerPelhams
Spot on, grazie per il codice :) –
Si dovrebbe essere in grado di farlo con i programmi di formattazione del codice. Dovresti prima convertire in codice HTML l'xml nella pagina.
Google ha a nice prettifyer che è in grado di visualizzare XML e diversi linguaggi di programmazione.
In sostanza, mettere il vostro XML in un tag pre come questo:
<pre class="prettyprint">
<link href="prettify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="prettify.js"></script>
</pre>
Utilizzare il XML Web Server Control per visualizzare il contenuto di un documento XML in una pagina web.
MODIFICA: è necessario passare l'intero XmlDocument alla proprietà Document del controllo Web Server XML per visualizzarlo. Non è necessario utilizzare la proprietà InnerXml.
Se l'identificazione è la tua unica cocern e se puoi permetterti di avviare il processo xternall, puoi elaborare il file xml con lo strumento console HTML Tidy (~ 100K).
Il codice è:
tidy --input-xml y --output-xhtml y --indent "1" $(FilePath)
Quindi è possibile visualizzare l'IDENT stringa sulla pagina web una volta si sbarazzarsi di caratteri speciali.
Sarebbe anche facile creare una funzione ricorsiva che produca tale output: è sufficiente iterare i nodi a partire dalla radice e immettere il successivo passo di ricorsione per il nodo figlio, passando l'identificazione come parametro per ogni nuova chiamata di ricorsione.
Controlla l'Actipro CodeHighlighter gratuito per ASP.NET: può visualizzare in modo ordinato XML e altri formati.
Oppure sei più interessato a formattare effettivamente il tuo XML? Quindi dai un'occhiata a XmlTextWriter: puoi specificare cose come Formato (indentazione o meno) e il livello di rientro e quindi scrivere il tuo XML ad es. un MemoryStream e leggerlo da lì in una stringa per la visualizzazione.
Marc
Utilizzare un XmlTextWriter con i XmlWriterSettings impostato in modo che il rientro sia abilitata. È possibile utilizzare StringWriter come "memoria temporanea" se si desidera scrivere la stringa risultante sullo schermo.
- 1. Come formattare un timestamp java.sql per la visualizzazione?
- 2. Modo rapido per implementare la convoluzione 2D in C
- 3. Come deserializzare XMLDocument per oggetto in C#?
- 4. C#, modo rapido per invertire un bool nullable?
- 5. C'è un modo per formattare una stringa in Flex
- 6. inserto XmlDocument in un nodo di XmlDocument
- 7. modo String.Format per formattare valuta senza Cents
- 8. Esiste un modo per interrogare le modifiche apportate da una visualizzazione materializzata per un rapido aggiornamento in Oracle?
- 9. C'è un modo per formattare il codice in TextWrangler?
- 10. C'è un modo rapido per creare un set?
- 11. Esiste un "modo più rapido" per costruire stringhe in Java?
- 12. Un modo rapido per eliminare una riga in netBeans
- 13. Un modo rapido per selezionare una linea in netBeans
- 14. modo rapido per inizializzare un tensore in torch7
- 15. Visualizzazione di una mappa con MapKit in un parco giochi Swift per un look rapido?
- 16. Un modo rapido per determinare se esiste una PID (Windows)?
- 17. Qual è il modo più rapido per trovare un file in Zend Studio per Eclipse?
- 18. Esiste un modo corretto e sbagliato per formattare i CSS?
- 19. Esiste un modo Backbone per formattare i numeri nella vista?
- 20. NSNumberFormatter è l'unico modo per formattare un NSDecimalNumber?
- 21. Esiste un modo per salvare un XmlDocument * senza il rientro * e il ritorno di riga?
- 22. Un modo rapido per tornare all'elenco senza un elemento specifico in Python
- 23. Modo rapido per trovare il prossimo multiplo di un numero
- 24. Il modo più veloce per formattare un numero di telefono in C#?
- 25. Python: un modo rapido per sommare i prodotti esterni?
- 26. Parentesi non corrispondenti: un modo rapido per trovarle?
- 27. Converti XmlDocument per String
- 28. Modo rapido per verificare se un server è accessibile dalla rete in C#
- 29. C# modo più rapido per inserire dati nel database SQL
- 30. Un modo rapido per determinare se un componente viene trovato in JPanel
Come volte passa e dobbiamo LINQ to XML ora, è possibile usare 'classe XDocument' da' System.Xml.Linq' namespace per stampare il vostro XML con rientro: 'XDocument.Parse (doc.InnerXml) '. – jwaliszko