如何在XML中注释单行?

Roa*_*oam 117 xml xml-comments

这是一个不容错过的验证.

XML中是否存在行注释?所以,没有更接近的,就像编译器使用的"//".

我看到如何在XML中注释掉一个标签块?和其他几个讨论.

这种类型的评论可以用来评论一条线而不会在某处向某处打扰.

koj*_*iro 140

不,没有办法在XML中注释一行,并且在一个换行符上自动结束注释.

XML只有一个注释定义:

'<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'
Run Code Online (Sandbox Code Playgroud)

XML禁止--在注释中保持与SGML的兼容性.


Sha*_*haz 18

正如其他人所说,没有办法在XML中合法地进行单行注释,注释掉多行,但是,有一些方法可以更容易地注释掉XML片段.查看下面的示例,如果向第一行添加">",则XmlTag将被取消注释.删除'>',它会再次注释掉.这是我见过的最简单的方法,可以快速评论/取消注释XML而不会破坏事物.

<!-- --
<XmlTag variable="0" />
<!-- -->
Run Code Online (Sandbox Code Playgroud)

额外的好处是你只能操纵最高评论,而底部评论可以永远坐在那里.这打破了与SGML的兼容性,一些XML解析器会对它进行限制.只要这不是XML中的永久固定,并且解析器接受它,它就不是真正的问题.StackOverflow和Notepad ++的语法高亮显示器将其视为多行注释,C++的boost库将其视为多行注释,而迄今为止我发现的唯一解析器是.Net中的解析器,特别是C#.因此,在使用之前,请务必首先测试您的工具,IDE,库,语言等是否接受它.

如果您关心SGML兼容性,只需使用它:

<!-- -
<XmlTag variable="0" />
<!- -->
Run Code Online (Sandbox Code Playgroud)

在顶部注释中添加" - >",在底部注释中添加" - ".低端每次都要编辑底部注释,这可能会使每次只在<!--顶部和-->底部输入更容易.

我还想提一下,其他评论者建议使用XML编辑器,它允许您右键单击并注释/取消注释XML块,这可能比花哨的查找/替换技巧更好(它本身也可以提供一个很好的答案,但我从来没有使用过这样的工具.我只是想确保信息不会随着时间的推移而丢失.我个人从来没有足够的处理XML来证明编辑器比Notepad ++更有价值,所以这完全取决于你.

  • 您可以将其写为"<! - - >"并将其添加到破折号而不是非XML. (10认同)
  • 正如@kojiro所说,包含" - "的注释不是格式良好的XML.关于"兼容性"的短语仅仅是规范编辑说明他们包含这个可怕规则的原因:它并不意味着如果你对兼容性不感兴趣,你可以忽略规则.因为错误而忽略了答案. (4认同)
  • 不幸的是,这是错误的.[规范](http://www.w3.org/TR/REC-xml/#sec-comments)说,*为了兼容性,字符串" - "(双连字符)绝不能出现在注释中.* (3认同)
  • @RyanWH继续执行适合您的操作,但您似乎依赖于您正在使用的XML解析器中的错误.就个人而言,我使用IDE(oXygen),它允许我选择一段XML文本,右键单击,并要求将其注释掉.这似乎比你的技术容易得多. (3认同)
  • 当然这不合法.规范很清楚.XML解析器可以遵循Postel定律并让你逃脱它,但是一个兼容的格式良好的检查器会标记它. (2认同)
  • @MichaelKay我会留下答案,因为我仍然认为它是有效的.通常当我需要添加/删除一行或一块XML时,它仅用于调试目的.我不是主张将它放在生产级代码中,但它仍然是一个强大的调试工具. (2认同)

nas*_*sim 11

它与HTML或javascript块注释相同

<!-- to be commented xml block goes here -->
Run Code Online (Sandbox Code Playgroud)


Fox*_*x32 5

可扩展标记语言(XML) 1.0仅包含块注释。


小智 5

不是正统的,但有时对我有用; 将您的评论设置为另一个属性

<node usefulAttr="foo" comment="your comment here..."/>
Run Code Online (Sandbox Code Playgroud)