如何在XML中注释掉一个标签块?

如何在XML中注释掉一个标签块?

也就是说,我如何在下面的代码中注释<staticText>和它里面的所有东西?

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

我可以使用<!-- staticText-->但是这只是单个标签(就像我所知道的),就像//在Java和C中一样。我希望更像/** comment **/可以用在Java和C,所以我可以注释掉更长的XML代码块。

您可以在多行中使用该风格的评论(也存在于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> 

如果你问,因为你有<!-- -->语法的错误,它最有可能是CDATA部分(和那里的部分),然后位于注释的中间。 它不应该有所作为,但理想的和真实的世界可能会相差很远,有时候(特别是当涉及到XML处理时)。

试着改变]]>

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

另一件事,想到:如果你的XML的内容包含两个连字符,那么注释会立即结束:

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

这是相当常见的陷阱。 它是从SGML处理注释的方式inheritance而来的。 ( 阅读关于这个主题的XML规范 )

您可以使用不存在的处理指令来包装文本,例如:

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

不允许嵌套处理指令,'?>'结束处理指令(见http://www.w3.org/TR/REC-xml/#sec-pi

其实,你可以用多行或标签来使用<!–…–>格式:

 <!-- ... ... ... --> 

这里评论我们必须写如下:

 <!-- Your comment here --> 

快速评论一行:

Ctrl + /

评论多行的捷径:

Ctrl + Shift + /

有一点你必须记住,你不能评论一个XML标签的属性。 例如:

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

在这里, TextView是一个XML标签, text是该标签的属性。 您无法评论XML标签的属性。 你必须评论完整的XML标签。

你可以很容易地使用这个注释掉数据:

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

在xml中注释的方法。