Il est assez simple de placer le texte externe d'un noeud XML dans une zone de texte WPF. Mais existe-t-il un moyen d'obtenir la zone de texte pour mettre en forme le texte en tant que document XML? Y a-t-il un contrôle différent qui fait cela?Afficher du code XML dans une zone de texte WPF
11
A
Répondre
21
Cela devrait faire l'affaire:
protected string FormatXml(string xmlString)
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlString);
StringBuilder sb = new StringBuilder();
System.IO.TextWriter tr = new System.IO.StringWriter(sb);
XmlTextWriter wr = new XmlTextWriter(tr);
wr.Formatting = Formatting.Indented;
doc.Save(wr);
wr.Close();
return sb.ToString();
}
4
Vous pouvez attacher à la liaison un convertisseur et appeler à l'intérieur du convertisseur le code de formatage.
C'est un exemple de code formats XML:
public string FormatXml(string xml)
{
var doc = new XmlDocument();
doc.LoadXml(xml);
var stringBuilder = new StringBuilder();
var xmlWriterSettings = new XmlWriterSettings
{Indent = true, OmitXmlDeclaration = true};
doc.Save(XmlWriter.Create(stringBuilder, xmlWriterSettings));
return stringBuilder.ToString();
}
Et un test démontre l'utilisation:
public void TestFormat()
{
string xml = "<root><sub/></root>";
string expectedXml = "<root>" + Environment.NewLine +
" <sub />" + Environment.NewLine +
"</root>";
string formattedXml = FormatXml(xml);
Assert.AreEqual(expectedXml, formattedXml);
}
3
est-il un contrôle différent qui fait cela?
Oui, affichez simplement le fichier XML dans un contrôle de navigateur.
<WebBrowser x:Name="wbOriginalXml" />
Accédez simplement à un XML enregistré
wbOriginalXml.Navigate(new Uri(@"C:\TempResult\Manifest.xml"));
Les résultats sont automatiquement tree-ed dans le navigateur où les noeuds peuvent être réduits:
Questions connexes
- 1. Comment modifier le focus d'une zone de texte vers une autre zone de texte avec du code dans WPF - C#
- 2. SetFocus à une zone de texte wpf
- 3. Comment afficher du code HTML dans une application WPF?
- 4. Comment afficher le HTML dans une zone de texte
- 5. WPF CommandParameter dans la zone de texte
- 6. Afficher les chaînes d'un tableau dans une zone de texte différente xaml WPF
- 7. Afficher les données dans une zone de texte
- 8. Comment coller du texte enrichi dans une zone de texte?
- 9. Obtenir une liaison de zone de texte dans wpf datagridtemplatecolumn
- 10. Comment afficher un accent grave dans une zone de texte
- 11. Afficher uniquement les numéros dans une zone de texte
- 12. Comment ancrer une zone de texte dans wpf?
- 13. DataBind à une zone de texte dans WPF
- 14. Déplacement du curseur de la zone de texte wpf
- 15. Insérer du texte dans la zone de texte WPF à la position du curseur
- 16. tinyMCE - édition de code source dans une zone de texte
- 17. wpf PathFigure pour dessiner/afficher/afficher du texte
- 18. EditorFor (date): Comment afficher une zone de texte vide?
- 19. WPF Bordure de zone de texte
- 20. Correction rapide, Lire le texte dans une zone de texte?
- 21. Comment afficher une zone d'édition de texte "sur" l'écran?
- 22. Rendu du texte html dans la zone de texte Dashcode
- 23. Zone de texte WPF en mode "virtuel"
- 24. WPF: glisser-déposer pour une zone de texte
- 25. jQuery Afficher une zone de texte Lorsqu'une option est sélectionnée
- 26. Je veux afficher le texte du fichier texte dans la zone de texte. comment puis-je faire cela .. en C#
- 27. Afficher le code source dans un composant de zone de texte
- 28. Validation dans la zone de texte dans WPF
- 29. WPF Zone de texte persistante caret visible
- 30. Comment afficher le texte dans une ligne dans wpf textblock
Cette ne fonctionne que sur les fichiers XML, pas sur les variables XML en mémoire – DdW
@DdW Oui, il faudrait enregistrer dans un fichier temporaire si le XML est en mémoire. – OmegaMan