Je souhaite afficher ma propriété InnerXml pour l'afficher dans une page Web. Je voudrais voir l'indentation des différentes étiquettes. Y a-t-il un moyen facile de faire ceci?Y at-il un moyen rapide de formater un XmlDocument pour l'affichage en C#?
Répondre
Voici une petite classe que j'ai rassemblée il y a quelques temps pour faire exactement cela.
Il suppose que vous travaillez avec le format XML au format chaîne.
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();
}
}
C'est encore plus facile quand on l'ajoute comme méthode d'extension :) – Urda
Je t'aime !!!!!!!!!!!!!! – ChandlerPelhams
Spot sur, merci pour le code :) –
Vous devriez être capable de le faire avec des formateurs de code. Il faudrait d'abord encoder le XML dans la page.
Google a a nice prettifyer qui est capable de visualiser XML ainsi que plusieurs langages de programmation.
Fondamentalement, mettre votre XML dans une balise pré comme ceci:
<pre class="prettyprint">
<link href="prettify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="prettify.js"></script>
</pre>
Utilisez le XML Web Server Control pour afficher le contenu d'un document XML sur une page Web.
EDIT: Vous devez passer l'intégralité de XmlDocument à la propriété Document du contrôle XML Web Server pour l'afficher. Vous n'avez pas besoin d'utiliser la propriété InnerXml.
Si l'identification est votre seul cocern et si vous pouvez vous permettre de lancer le processus xternall, vous pouvez traiter le fichier xml avec l'outil console HTML Tidy (~ 100K).
Le code est:
tidy --input-xml y --output-xhtml y --indent "1" $(FilePath)
Ensuite, vous pouvez afficher la chaîne sur la page identififiés règle web une fois que vous vous débarrasser de caractères spéciaux. Il serait également facile de créer une fonction récursive qui produit une telle sortie - il suffit de parcourir les nœuds à partir de la racine et de passer à l'étape de récurrence suivante pour le nœud enfant, en passant l'identifiant comme paramètre à chaque nouvel appel récursif.
Découvrez le fichier gratuit Actipro CodeHighlighter pour ASP.NET - il peut afficher de manière soignée XML et d'autres formats.
Ou êtes-vous plus intéressé par le formatage de votre XML? Jetez un coup d'œil au XmlTextWriter - vous pouvez spécifier des choses comme Format (indentant ou non) et le niveau de retrait, puis écrire votre XML par exemple. un MemoryStream et le lire à partir de là dans une chaîne pour l'affichage.
Marc
Utilisez un XmlTextWriter avec les XmlWriterSettings mis en place de telle sorte que l'indentation est activée. Vous pouvez utiliser un StringWriter comme "stockage temporaire" si vous voulez écrire la chaîne résultante sur l'écran.
- 1. Le moyen le plus rapide de formater un numéro de téléphone en C#?
- 2. y at-il un moyen de formater actionscript dans flashdevelop?
- 3. Y a-t-il un moyen plus rapide?
- 4. Puis-je ajouter un XmlDocument dans un nœud d'un autre XmlDocument en C#?
- 5. moyen le plus rapide pour formater les résultats SQL en PHP
- 6. Implémentation de GetByClassName pour un XmlDocument .Net
- 7. Comment formater un int comme devise en C#?
- 8. NSMutableArray. Quel est le moyen le plus rapide pour le convertir en un tableau C simple?
- 9. Quel est le moyen le plus rapide d'apprendre l'objectif-c pour un développeur expérimenté en PHP?
- 10. Existe-t-il un moyen rapide de supprimer l'utilisation des instructions en C#?
- 11. Écriture de XMLDocument non échappé en C#
- 12. Internet Explorer Debug Mode - Y a-t-il un moyen rapide de l'activer/désactiver?
- 13. moyen le plus rapide de comparer une chaîne avec un tableau de chaînes en C# 2.0
- 14. Y at-il un moyen rapide et sale de Cast PansiChar à Pchar dans Delphi 2009
- 15. Le moyen le plus rapide pour stocker un grand ensemble de données (C# ASP.net)
- 16. Un moyen rapide de convertir une application JSP infectée par un scriptlet en Struts?
- 17. Existe-t-il un moyen plus rapide de charger mysqldumps?
- 18. Y a-t-il un moyen de passer un type de structure à une fonction c
- 19. Un moyen rapide d'échanger des octets dans un tableau de gros boutiste à petit boutiste en C#
- 20. C# XmlDocument SelectNodes
- 21. Y at-il un moyen de changer de répertoire en utilisant le langage C?
- 22. C# XMLDocument vers DataTable?
- 23. Comment utiliser NSDateFormatter pour formater un NSString?
- 24. En utilisant Emacs, comment mettre en retrait/formater un segment de code dans un fichier TXT?
- 25. Y at-il un moyen de faire un effet Ombre portée en XAML sur un TextBlock?
- 26. Y a-t-il un moyen facile d'itérateur sur une liste statique de chaînes en C++?
- 27. Y at-il un moyen d'accélérer COM?
- 28. Un moyen rapide de faire correspondre un tableau de mots avec un bloc de texte?
- 29. Modèle pour copie rapide en C
- 30. Le moyen le plus rapide pour supprimer un arbre de répertoires dans un fichier batch
Comme le temps passe par et nous avons LINQ to XML maintenant, vous pouvez utiliser la classe '' XDocument' de l'espace de noms System.Xml.Linq' pour imprimer votre XML avec indentation: 'XDocument.Parse (doc.InnerXml) '. – jwaliszko