代码之家  ›  专栏  ›  技术社区  ›  Jonas

如何在XML中注释出标记块?

  •  737
  • Jonas  · 技术社区  · 15 年前

    如何在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 **/ 可以在爪哇和C中使用,所以我可以注释更长的XML代码块。

    6 回复  |  直到 6 年前
        1
  •  1039
  •   nbro kai    10 年前

    您可以跨多行使用这种风格的注释(也存在于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>
    
        2
  •  142
  •   Kasper van den Berg    12 年前

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

    <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 )

        3
  •  141
  •   McKay    8 年前

    如果你问,因为你在 <!-- --> 语法,它最有可能是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处理注释的方式。( Read the XML spec on this topic )

        4
  •  46
  •   Delan Azabani    15 年前

    实际上,您可以使用<!--…-->带多行或标记的格式:

    <!--
      ...
      ...
      ...
    -->
    
        5
  •  23
  •   Avijit Karmakar    7 年前

    在这里,我们必须这样写:

    <!-- Your comment here -->
    

    对于Windows和Linux:

    注释单行的快捷方式:

    Ctrl + /

    注释多行的快捷方式:

    Ctrl键 + Shift + /

    对于Mac:

    注释单行的快捷方式:

    cmnd + /

    注释多行的快捷方式:

    CMND + 换档 + /

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

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

    在这里, TextView 是XML标记,并且 text 是该标记的属性。不能对XML标记的属性进行注释。您必须对完整的XML标记进行注释。例如:

    <!--<TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Hello.."
        android:textStyle="bold" />-->
    
        6
  •  12
  •   Eric Leschinski Mr. Napik    9 年前

    您可以使用以下方法轻松注释数据:

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

    XML中的注释方法。