如何在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处理注释的方式继承而来的。 (阅读关于此主题的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)

链接地址: http://www.djcxy.com/p/20135.html

上一篇: How do I comment out a block of tags in XML?

下一篇: How can I parse a YAML file in Python