【问题标题】:Getting a Parser error when trying to parse XML 3.5 files in Perl尝试在 Perl 中解析 XML 3.5 文件时出现解析器错误
【发布时间】:2018-06-30 12:19:26
【问题描述】:

我正在尝试在 Perl 中解析 XML 3.5 版文件。

文件的第一行如下所示:

<?xml version="3.5" encoding="UTF-8" standalone="yes"?>

我已经尝试过 XML::Simple 和 XML::LibXML,它们都导致相同的错误:

parser error : Unsupported version \'3.5\' <?xml version="3.5" encoding="UTF-8" standalone="yes"?>

是否有人可能对解决此问题的方法或我可以使用的替代库有任何建议?我尝试谷歌,但似乎没有很多有用的解决方案。

【问题讨论】:

  • 也许你应该说你的 XML 数据是 3.5 版的概念。
  • 我们供应商的源文件有 xml version="3.5",所以我认为他们违反了 RFC?
  • 非常感谢您的帮助。我看到根据 RFC,1.0 和 1.1 是唯一受支持的版本?
  • 我已将我的 cmets 移动到答案中。
  • 他们可能误用了 XML 版本字段来存储其架构的版本。存储它的好地方是根元素上的一个属性。

标签: xml perl


【解决方案1】:

XML 没有 3.5 版本,只有 1.0 和 1.1(1.0 是常用的)standardised by the W3C

很容易推测这些数据来自未来,其中 XML 实际上有超过 1 的版本,但我怀疑更有可能存在一些误解,并且该文档是某种特定的基于 XML 格式的 3.5 版本,并且版本被错误地添加到开头的标题中。

您唯一的选择是:

  • 说服生成文件的人改正错误
  • 在解析文件之前将3.5替换为1.0,希望他们没有犯其他错误导致无法解析

【讨论】:

    猜你喜欢
    • 2013-05-31
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    相关资源
    最近更新 更多