XML中的嵌套注释?
Posted
技术标签:
【中文标题】XML中的嵌套注释?【英文标题】:Nested comments in XML? 【发布时间】:2010-11-22 10:16:35 【问题描述】:这些嵌套的 cmets 是否允许在 XML 文件中使用?
<!-- Making only one observation attempting to correct the error code -->
<!-- <component>
<!-- Result observation template -->
<!-- <id root="2.16.840.1.113883.19.5.10" extension="103220"/>
</component> -->
【问题讨论】:
...想知道为什么没有人提到使用CDATA
作为 hacky 块评论...
【参考方案1】:
不,字符串--
不允许出现在 XML 的 cmets 中。因此,您在另一条评论中显示 --
的事实将导致失败。
并且尝试发布该答案也破坏了文本输入解析;)
如需进一步证明,请查看 W3C 规范:
http://www.w3.org/TR/2008/REC-xml-20081126/#sec-comments
短语
为了兼容性,字符串“--”(双连字符)不得出现在 cmets 中。]
出现在 XML cmets 部分的第一段中。
【讨论】:
System.Xml.XmlException: This is an invalid comment syntax. 这是为了保证与SGML的兼容性。 @Brent Nash 那么如何注释掉一个包含 cmets 的大块呢? @BrentNash 我相信你的话,这只是为了确保向后兼容性:)。尽管如此,对于 90 年代设计的格式,不允许嵌套 cmets 并不酷。【参考方案2】:正如How do I comment out a block of tags in XML? 中所说,您可以尝试使用不存在的处理指令来包装您的代码,例如:
<?ignore
<component>
<!-- Result observation template -->
<!-- <id root="2.16.840.1.113883.19.5.10" extension="103220"/>
</component>
?>
【讨论】:
这对于表现不佳的 NuGet 包通过添加自己的元素和数十个 cmets 破坏我精心策划的web.config
文件的情况非常有帮助!【参考方案3】:
一句话——没有。
第一个遇到的结束评论标记将,呃...结束评论,其余部分看起来有点不愉快。
【讨论】:
【参考方案4】:你不能。 --
开始和终止评论。这使得嵌套它们变得不可能。
【讨论】:
【参考方案5】:Notepad++ 和 XML Tools 插件可以做到这一点。
选择一个 xml 块并在 xml 工具子菜单上选择“评论选择”。
每个现有的“内部 xml 注释”都将被更改,使其看起来像这样
<!1** inner xml comment **1>
如果你以这种方式添加另一个外部注释,那些原来的内部 cmets 将被进一步更改为
<!2** inner xml comment **2>
【讨论】:
以上是关于XML中的嵌套注释?的主要内容,如果未能解决你的问题,请参考以下文章