【问题标题】:The string "--" is not permitted, java project [duplicate]不允许使用字符串“--”,java项目[重复]
【发布时间】:2012-12-07 18:39:59
【问题描述】:

可能重复:
Cure for ‘The string “--” is not permitted within comments.’ exception?

我有一个 Java 项目来解析和编辑 XML 文件。 当我尝试运行该项目时,我收到以下日志消息:

cmets 中不允许使用字符串“--”。 线程“main”org.xml.sax.SAXParseException 中的异常:cmets 中不允许使用字符串“--”。 在 com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:246) ...

我该如何解决?

【问题讨论】:

标签: java xml string parsing


【解决方案1】:

无需进一步了解您的代码:

如您所说,有错误。在您的 XML 工作表中的某处,您有一个注释,其中包含一个 --。例如这样的:

<root>
  <!-- my comment with -- in it -->
</root>

这不是格式良好的 XML。不允许在评论中使用 --。解析器将无法检测到注释的结尾。

【讨论】:

  • 你能解释一下为什么解析器很难吗?我的意思是“-->”定义了注释的结尾。那么为什么解析器不只是忽略“--”并进一步寻找呢?
  • DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); docFactory.setIgnoringComments(true); docFactory.setValidating(false); DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); doc = docBuilder.parse(file);
  • @Timo +1 发表评论,我刚刚搜索发现他们保持这样的状态以保持与 SGML 的兼容性
  • @Timo:因为它指定了与 SGML 兼容的方式:w3.org/TR/xml/#sec-comments
  • 没有办法解决这个问题吗?
猜你喜欢
  • 2021-05-13
  • 1970-01-01
  • 2012-12-12
  • 1970-01-01
  • 1970-01-01
  • 2014-12-03
  • 2012-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多