2017-06-30 2 views
0

Je veux afficher le code XML suivant sur une page dans mon application Web à l'aide de Google Code Prettify et serpolet (w/Spring Boot):Comment écrire XML en HTML

<?xml version="1.0"?> 
<users> 
    <user uid="user12" name="Matt" mail="[email protected]"/> 
</users> 

J'écrit le code HTML suivant:

<pre id="code" class="prettyprint lang-xml"> 
&lt;&#x3f;xml version&#x3d;&quot;1.0&quot;&#x3f;&gt; 
&lt;users&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&lt;user uid&#x3d;&quot;user12&quot; name&#x3d;&quot;Matt&quot; mail&#x3d;&quot;user12&#x40;example.com&quot;&#x2f;&gt; 
&lt;&#x2f;users&gt;</pre> 

Cela fonctionne très bien, mais le code HTML est très sale. Quelqu'un pourrait-il me dire un moyen d'écrire plus de code lisible par l'homme?

Répondre

2

Eh bien, c'est comme ça que le HTML fonctionne, donc vous avez besoin de ces entités HTML. Ce que vous pouvez faire si vous utilisez Thymeleaf est de fournir le contenu XML en tant que variable. Thymeleaf échappe automatiquement le contenu de ces variables si vous utilisez des attributs tels que th:text. Par exemple:

<pre id="code" class="prettyprint lang-xml" th:text="${users}"> 

</pre> 

Cela signifie que vous devrez définir la part variable de users bien. Cela peut être fait à partir d'un contrôleur Spring. Vous pouvez créer un fichier XML et le lire comme une chaîne pour passer au modèle, par exemple:

@GetMapping 
public ModelAndView getPage() throws IOException { 
    Resource resource = new ClassPathResource("users.xml"); 
    return new ModelAndView("index", "users", FileUtils.readFileToString(resource.getFile(), Charset.defaultCharset())); 
} 

Vous pouvez probablement déplacer le code de lecture de fichier séparé quelque part, parce qu'en ce moment, vous éprouverez des frais généraux puisque vous lira le fichier XML chaque fois que quelqu'un demanderait la page.

+0

Merci! C'est la réponse que je cherchais. –