503 votes

Comment faire pour imprimer assez XML à partir de la ligne de commande ?

<p>Related : <a href="http://stackoverflow.com/questions/352098/how-to-pretty-print-json-from-the-command-line">Comment faire pour imprimer JSON de la ligne de commande ?</a><p>Y a-t-il un script de shell (unix) au format XML, sous forme lisible par l’homme ?</p><p>Fondamentalement, je le veux pour transformer le texte suivant :</p><pre><code></code></pre><p>... en quelque chose comme ceci :</p><pre><code></code></pre></p>

880voto

sputnick Points 31663

Essayez de faire cela :

echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' |
    xmllint --format -

Cet utilitaire est livré avec libxml2

ou

echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' |
    xml_pp

cette commande est livré avec XML::Twig module.

ou

echo '<root><foo a="b">lorem</foo><bar value="ipsum" /></root>' |
    xmlstarlet format --indent-tab

cette commande est livré avec xmlstarlet

NOTE

Si vous souhaitez transformer un fichier XML en place (c'est à dire: reformater un fichier XML) sans créer un fichier intermédiaire, vous pouvez effectuer les opérations suivantes à l'aide de cet outil:

cat data.xml | xmllint --format - | tee data.xml

148voto

crmpicco Points 2226
<p><code></code><p>xmllint est un outil de ligne de commande XML et est inclus dans <code></code> .</p></p>

39voto

matt Points 946
<p>Vous pouvez également utiliser <a href="http://www.w3.org/People/Raggett/tidy/" rel="nofollow">tidy</a>, qui doive être installé en premier (par exemple sur Ubuntu : sudo <code></code> ).<p>Pour ce faire, vous taperez quelque chose comme suit :</p><pre><code></code></pre><p>Remarque : a beaucoup d’indicateurs supplémentaires de lisibilité, mais comportement d’habillage est un peu gênant à démêler (<a href="http://tidy.sourceforge.net/docs/quickref.html" rel="nofollow">http://tidy.sourceforge.net/docs/quickref.html</a>).</p></p>

13voto

David Points 2580
<p>Vous ne mentionnez pas un fichier, alors je suppose que vous souhaitez fournir la chaîne XML en tant qu’entrée standard dans la ligne de commande. Dans ce cas, procédez comme suit :<pre><code></code></pre></p>

9voto

twonkeys Points 96
<p>D’avoir <code></code> disponible sur les systèmes Debian, vous devrez installer le paquet <code></code> ( <code></code> ne fournit pas cet outil, du moins pas sur Debian 5.0 « Lenny » et 6,0 « Squeeze »).</p>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X