131

这是一个验证,只是不要错过。

XML 中是否有行注释?因此,没有更接近的,例如编译器使用的“//”。

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

这种类型的注释可以很实用地注释掉一行,而不会打扰它更靠近的地方。

4

5 回答 5

157

不,没有办法在 XML 中注释一行并在换行符处自动结束注释。

XML 对注释只有一个定义

'<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'

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

于 2013-06-26T17:53:11.733 回答
21

正如其他人所说,没有办法在 XML 中合法地执行单行注释来注释掉多行,但是,有一些方法可以使注释掉 XML 段更容易。

查看下面的示例,如果在第一行添加“>”,则 XmlTag 将被取消注释。删除“>”并再次注释掉。这是我见过的在不破坏任何东西的情况下快速注释/取消注释 XML 的最简单方法。

<!-- --
<XmlTag variable="0" />
<!-- -->

额外的好处是您只能操纵顶部评论,而底部评论可以永远坐在那里。这破坏了与SGML的兼容性,一些 XML 解析器会对此感到厌烦。只要这不是您的 XML 中的永久固定装置,并且您的解析器接受它,它就不是真正的问题。

Stack Overflow 和Notepad++ 的语法高亮器将其视为多行注释,C++ 的Boost库将其视为多行注释,而到目前为止我发现的唯一中断的解析器是 .NET 中的解析器,特别是 C#。因此,请务必在使用之前先测试您的工具、IDE、库、语言等是否接受它。

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

<!-- -
<XmlTag variable="0" />
<!- -->

在顶部评论中添加“->”,在底部评论中添加“-”。<!--缺点是每次都必须编辑底部评论,这可能会使每次在顶部和-->底部输入更容易。

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

于 2013-06-26T18:21:13.050 回答
13

它与 HTML 或 JavaScript 块注释相同:

<!-- The to-be-commented XML block goes here. -->
于 2016-06-02T04:47:27.143 回答
6

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

<node usefulAttr="foo" comment="Your comment here..."/>
于 2016-02-18T10:28:21.193 回答
5

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

于 2013-06-26T17:54:43.030 回答