Comment commenter un bloc de balises en XML?

795

Comment commenter un bloc de balises en XML?

Ie Comment puis-je commenter <staticText>et tout ce qu'il contient, dans le code ci-dessous?

  <detail>
    <band height="20">
      <staticText>
        <reportElement x="180" y="0" width="200" height="20"/>
        <text><![CDATA[Hello World!]]></text>
      </staticText>
    </band>
  </detail>

Je pourrais utiliser <!-- staticText-->mais c'est juste pour des balises simples (comme ce que je sais), comme //en Java et C. Je voudrais quelque chose de plus comme comment /** comment **/peut être utilisé en Java et C, donc je peux commenter des blocs de code XML plus longs.

Jonas
la source
11
Vous devez savoir que les commentaires dans un fichier xml sont considérés comme des nœuds de type XmlComment . Donc, si vous chargez le fichier xml , ces nœuds de commentaires vont être chargés et c'est à vous de les éviter ou de les filtrer lors de l'analyse du contenu chargé.
El Bayames
Les commentaires XML sont similaires aux commentaires en HTML.
Somnath Muluk du

Réponses:

1136

Vous pouvez utiliser ce style de commentaire sur plusieurs lignes (qui existe également en HTML)

<detail>
    <band height="20">
    <!--
      Hello,
         I am a multi-line XML comment
         <staticText>
            <reportElement x="180" y="0" width="200" height="20"/>
            <text><![CDATA[Hello World!]]></text>
          </staticText>
      -->
     </band>
</detail>
Noon Silk
la source
59
Une mise en garde à ce sujet est que vous aurez des problèmes avec les commentaires imbriqués. Vous devrez soit: (1) supprimer le ">" à la fin du commentaire imbriqué, ou (2) supprimer complètement les commentaires imbriqués.
undeniablyrob
1
J'ai rencontré des problèmes avec (1), car certains lecteurs XML (par exemple CruiseControl.NET) peuvent avoir des problèmes pour lire un commentaire imbriqué dont le ">" a été supprimé à la fin. J'ai fini par devoir supprimer complètement les commentaires.
undeniablyrob
14
@coderob En fait, même - n'est pas autorisé dans les commentaires XML. Donc, vous devrez peut-être supprimer l'intégralité du ->
0fnt
Dans Android Studio, sélectionnez le bloc, puis Ctrl + Slash pour le commenter (ou Ctrl + Shift + Slash).
Kamran Bigdely
1
On peut rencontrer des problèmes d'utilisation --dans ce type de commentaire. Mieux vaut l'utiliser - ->si vous devez imbriquer temporairement un commentaire. En HTML de toute façon (un sous-ensemble de xml), y compris à l' --intérieur d'un commentaire n'est pas valide. Habituellement, vous pouvez vous en tirer, mais cela cause parfois un problème. Donc, je suis sûr de rester à l'écart de plusieurs fois -de suite dans les commentaires, et si j'ai besoin de temp imbriquer un commentaire, je placerai des espaces entre les 2 fermetures --du -->. Cela évite les erreurs aléatoires dans XML et HTML.
SherylHohman
169

Vous pouvez encapsuler le texte avec une instruction de traitement inexistante, par exemple:

<detail>
<?ignore
  <band height="20">
    <staticText>
      <reportElement x="180" y="0" width="200" height="20"/>
      <text><![CDATA[Hello World!]]></text>
    </staticText>
  </band>
?>
</detail>

Les instructions de traitement imbriquées ne sont pas autorisées et «?>» Met fin à l'instruction de traitement (voir http://www.w3.org/TR/REC-xml/#sec-pi )

Kasper van den Berg
la source
11
Cette méthode fonctionnait exactement comme j'en avais besoin et avait l'avantage supplémentaire de travailler même autour des commentaires internes. J'utiliserais cela sur la réponse acceptée si vous avez une forme de code compliqué.
Sean Branchaw
100 sur 100 à vous @Kasper
Shiva krishna Chippa
2
Cela fonctionne même avec du XML mal formé à l'intérieur. C'est donc une excellente solution pour commenter temporairement un bloc.
Max
146

Si vous demandez, parce que vous avez des erreurs avec la <!-- -->syntaxe, c'est probablement la section CDATA (et là la ]]>partie), qui se trouve alors au milieu du commentaire. Cela ne devrait pas faire de différence, mais le monde idéal et le monde réel peuvent parfois être assez éloignés (surtout en ce qui concerne le traitement XML).

Essayez également de modifier ]]>:

  <!--detail>
    <band height="20">
      <staticText>
        <reportElement x="180" y="0" width="200" height="20"/>
        <text><![CDATA[Hello World!]--><!--]></text>
      </staticText>
    </band>
  </detail-->

Une autre chose qui me vient à l'esprit: si le contenu de votre XML contient quelque part deux tirets, le commentaire s'arrête immédiatement là:

<!-- <a> This is strange -- but true!</a> -->
--------------------------^ comment ends here

C'est un piège assez courant. Il est hérité de la façon dont SGML gère les commentaires. ( Lire la spécification XML sur ce sujet )

Boldewyn
la source
1
Oui ... J'ai toujours trouvé l'analyse syntaxique SGML et XML des commentaires difficile à retenir de toutes les bizarreries ...
Delan Azabani
1
Merci beaucoup d'avoir mentionné le fait étrange avec les doubles tirets -! J'ai eu un cas où j'ai commenté un commentaire. Bien que j'aie supprimé l'ancien commentaire, il a échoué. Exemple: <! - ... <code> <! - Ancien commentaire </code> ... ->
dwettstein
Pour contourner la limitation de double trait d'union, vous pouvez remplacer --par -&#45;. Il devrait fonctionner de la même manière après la mise en commentaire dans la plupart des cas.
mik
48

En fait, vous pouvez utiliser le format <! --...--> avec plusieurs lignes ou balises:

<!--
  ...
  ...
  ...
-->
Delan Azabani
la source
25

Ici, pour commenter, nous devons écrire comme ci-dessous:

<!-- Your comment here -->

Raccourcis pour IntelliJ Idea et Eclipse

Pour Windows et Linux:

Raccourci pour commenter une seule ligne:

Ctrl + /

Raccourci pour commenter plusieurs lignes:

Ctrl+ Shift+/

Pour Mac:

Raccourci pour commenter une seule ligne:

cmnd + /

Raccourci pour commenter plusieurs lignes:

cmnd+ Shift+/

Une chose que vous devez garder à l'esprit, c'est que vous ne pouvez pas commenter un attribut d'une balise XML. Par exemple:

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    <!--android:text="Hello.."-->
    android:textStyle="bold" />

Voici TextViewune textbalise XML et un attribut de cette balise. Vous ne pouvez pas commenter les attributs d'une balise XML. Vous devez commenter la balise XML complète. Par exemple:

<!--<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Hello.."
    android:textStyle="bold" />-->
Avijit Karmakar
la source
11

Vous pouvez facilement commenter les données en utilisant ceci:

<!-- 
 <data>
        <data-field1></data-field1>
        <data-field2></data-field2>
        <data-field3></data-field3>
 </data>
-->

méthode de commentaire en xml.

svg
la source
1

Syntaxe pour XML: <!--Your comment-->

par exemple.

   <?xml version = "1.0" encoding = "UTF-8" ?>
   <!--here is your comment :) -->
   <class_list>   
   <student>
   <name></name>
   <grade>A</grade>
   </student>
   </class_list>

Règles de commentaires XML

Comments cannot appear before XML declaration.
Comments may appear anywhere in a document.
Comments must not appear within attribute values.
Comments cannot be nested inside the other comments.
TheSuMiT.
la source