Como faço para comentar um bloco de tags em XML?

795

Como faço para comentar um bloco de tags em XML?

Ou seja, como posso comentar <staticText>e tudo dentro dele, no código abaixo?

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

Eu poderia usar, <!-- staticText-->mas isso é apenas para tags únicas (como eu sei), como //em Java e C. Gostaria de algo mais parecido com como /** comment **/pode ser usado em Java e C, para que eu possa comentar blocos mais longos de código XML.

Jonas
fonte
11
Você deve saber que os comentários em um arquivo xml são considerados nós do tipo XmlComment . Portanto, se você carregar o arquivo xml, esses nós de comentários serão carregados e você deve evitá-los ou filtrá-los ao analisar o conteúdo carregado.
El Bayames 18/07/2013
Comentários XML são semelhantes aos comentários em HTML.
Somnath Muluk

Respostas:

1136

Você pode usar esse estilo de comentário em várias linhas (que também existe em 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>
Seda do meio-dia
fonte
59
Uma ressalva é que você terá problemas com comentários aninhados. Você precisará: (1) remover o ">" à direita no fechamento do comentário aninhado ou (2) remover os comentários aninhados por completo.
undeniablyrob
1
Eu encontrei problemas com (1), pois alguns leitores de XML (por exemplo, CruiseControl.NET) podem ter problemas ao ler um comentário aninhado cujo ">" foi removido do final. Acabei tendo que remover os comentários por completo.
undeniablyrob
14
@coderob Na verdade, mesmo - não é permitido nos comentários XML. Então você pode ter que remover todo o ->
0fnt
No Android Studio, selecione o bloco e, em seguida, Ctrl + Slash para comentar (ou Ctrl + Shift + Slash).
Kamran Bigdely
1
Pode-se encontrar problemas usando --esse tipo de comentário. Melhor usar - ->se você precisar aninhar temporariamente um comentário. De qualquer forma, em HTML (um subconjunto de xml), inclusive --dentro de um comentário não é válido. Geralmente você pode se safar, mas às vezes causa um problema. Portanto, certifique-se de evitar vários -em sequência nos comentários e, se eu precisar aninhar temporariamente um comentário, colocarei espaços entre o 2 fechamento --do -->. Isso evita erros aleatoriamente ímpares em XML e HTML.
precisa saber é o seguinte
169

Você pode agrupar o texto com uma instrução de processamento inexistente, por exemplo:

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

Instruções de processamento aninhadas não são permitidas e '?>' Termina a instrução de processamento (consulte http://www.w3.org/TR/REC-xml/#sec-pi )

Kasper van den Berg
fonte
11
Esse método funcionou exatamente como eu precisava e tinha a vantagem adicional de trabalhar mesmo com comentários internos. Eu usaria isso sobre a resposta aceita se você tiver alguma forma de código complicado.
Sean Branchaw
100 de 100 para você @ Kasper
Shiva krishna Chippa
2
Isso funciona mesmo com XML malformado por dentro. Portanto, esta é uma ótima solução para comentar temporariamente um bloco.
Max
146

Se você perguntar, porque você encontrou erros com a <!-- -->sintaxe, provavelmente a seção CDATA (e a ]]>parte), que fica no meio do comentário. Não deve fazer diferença, mas o mundo ideal e o mundo real podem ser um pouco separados, às vezes (especialmente quando se trata de processamento XML).

Tente alterar ]]>também:

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

Outra coisa que vem à mente: se o conteúdo do seu XML em algum lugar contiver dois hífens, o comentário será encerrado imediatamente:

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

Essa é uma armadilha bastante comum. É herdado da maneira como o SGML lida com comentários. ( Leia a especificação XML sobre este tópico )

Boldewyn
fonte
1
Sim ... Eu sempre achei SGML e XML análise dos comentários difícil lembrar todos os caprichos ...
Delan Azabani
1
Muito obrigado por mencionar o fato estranho com os hífens duplos -! Eu tive um caso em que comentei um comentário. Embora eu tenha removido o comentário antigo, ele falhou. Exemplo: <! - ... <code> <! - Comentário antigo </code> ... ->
dwettstein
Para solucionar a limitação de hífen duplo, você pode substituir --por -&#45;. Deve funcionar da mesma maneira depois de descomentar na maioria dos casos.
Mik
48

Na verdade, você pode usar o formato <! --...--> com várias linhas ou tags:

<!--
  ...
  ...
  ...
-->
Delan Azabani
fonte
25

Aqui para comentar, temos que escrever como abaixo:

<!-- Your comment here -->

Atalhos para o IntelliJ Idea e o Eclipse

Para Windows e Linux:

Atalho para Comentar uma única linha:

Ctrl + /

Atalho para Comentar várias linhas:

Ctrl+ Shift+/

Para Mac:

Atalho para Comentar uma única linha:

cmnd + /

Atalho para Comentar várias linhas:

cmnd+ Shift+/

Uma coisa que você deve ter em mente é que não pode comentar um atributo de uma tag XML. Por exemplo:

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

Aqui, TextViewestá uma tag XML e texté um atributo dessa tag. Você não pode comentar os atributos de uma tag XML. Você precisa comentar a tag XML completa. Por exemplo:

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

Você pode comentar facilmente os dados usando este:

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

método de comentar em xml.

svg
fonte
1

Sintaxe para XML: <!--Your comment-->

por exemplo.

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

Regras de comentários 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.
fonte