如何注释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中的//。


当前回答

如果您问,因为您在<!-->中遇到了错误语法,很可能是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处理注释的方式。(阅读本主题的XML规范)

其他回答

在Notepad++中,您可以选择几行并使用CTRL+Q,这将自动为所选行生成块注释。

XML语法:<!--您的评论-->

eg.

<?xml版本=“1.0”编码=“UTF-8”?><!--以下是您的评论:)--><class_list><学生><name></name><grade>A</grade></学生></class_list>

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.

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

<!-- Your comment here -->

IntelliJ Idea和Eclipse的快捷方式

对于Windows和Linux:

注释单行的快捷方式:

Ctrl+/

注释多行的快捷方式:

Ctrl+Shift+/

对于Mac:

注释单行的快捷方式:

厘米数+/

注释多行的快捷方式:

cmnd+移位+/

需要记住的一点是,不能对XML标记的属性进行注释。例如:

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

这里,TextView是一个XML标记,文本是该标记的属性。不能对XML标记的属性进行注释。您必须对完整的XML标记进行注释。例如:

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

您可以使用以下命令轻松注释数据:

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

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-圆周率)