J'utilise DataContractSerializer pour convertir et renvoyer un objet renvoyé à partir d'un appel WCF vers xml. Le client souhaite voir cette chaîne XML dans une page Web. Si je publie la chaîne directement sur une étiquette, le navigateur supprime évidemment les chevrons. Ma question est comment puis-je faire quelque chose de similaire à StackOverflow? Font-ils un & remplacer pour remplacer les crochets avec leurs entités html? Je vois qu'ils font une balise de code à l'intérieur d'un tag pré et ensuite faire des travées avec la classe appropriée. Y at-il un utilitaire existant là-bas que je peux utiliser pour faire cela au lieu d'écrire une sorte de routine d'analyse. Je suis sûr que quelque chose doit être libre. Si quelqu'un peut diriger vers le bon endroit ou un code qui peut facilement accomplir cela, je l'apprécierais grandement. Je m'excuse si c'est plus une question de méta.stackoverflow. Merci pour tous les conseils.Comment puis-je prendre une chaîne xml et l'afficher sur ma page de la même manière que StackOverflow le fait avec 'insert code'?
Répondre
La réponse de base est que pour obtenir HTML affiché comme tapées, caractères spéciaux et tout, vous devez remplacer les caractères spéciaux (<
, >
etc.), avec leurs équivalents échappées (>
, <
etc.). Au-delà, si vous voulez colorier la syntaxe, vous devrez analyser l'entrée pour identifier les mots-clés, etc.
Une liste complète des caractères spéciaux et de leurs codes d'échappement peut être trouvée here, mais ce n'est qu'un site parmi d'autres.
vous parlez « pretty print » .. si vous voulez diplay code source, vous pouvez utiliser ce lien 16 Free Javascript Code Syntax Highlighters For Better Programming
Mais si vous voulez afficher uniquement xml .. il y a quelques fonctions sur le Web qui pourrait vous aider, comme celui-ci: XML PHP Pretty Printer
et ne pas oublier les caractères spéciaux =)
bonne chance