【发布时间】:2014-11-11 15:45:12
【问题描述】:
我先说我不是服务器管理员,而是一个试图找出问题所在的开发人员。
我们的服务器托管了很多网站,今天由管理它的公司升级(同时执行其他工作)。升级最终破坏了我们现在抛出 XSLT 错误的许多网站(大约 30 多个)。
大多数网站都建立在 Symphony CMS(不是 symfony)之上,它使用 XSLT 模板来生成 (X)HTML。
在更新之前,我们设法在同一页面上输出了具有相同值的多个 ID(例如,id='abc',我知道,无效 - 暂时忽略它)。关键是它可以正常工作而不会导致错误。
升级后,当遇到多个 id 值时,网站现在都会抛出错误。例如:
ID abc already defined
我确信导致错误的更新之一是 libxslt、libxml 和 libexslt 版本。在我们使用之前:
libxslt Version => 1.1.26
libxslt compiled against libxml Version => 2.7.8
libexslt Version => 1.1.26
自升级以来:
libxslt Version => 1.1.28
libxslt compiled against libxml Version => 2.9.1
libexslt Version => 1.1.28
我的预感是它现在将 XHTML 视为 XML,而不是以前的 HTML,而且 XMl 不允许多个 ID 值。
我的问题是,有没有人见过这种情况或知道可能导致它的原因,以及恢复它或强制它忽略多个 id 值的适当步骤是什么?
在这个阶段没有真正的选择来回滚更改(所以服务器管理员说)或修复网站(因为这需要太长时间)。
任何想法表示赞赏。
2014 年 11 月 24 日编辑: 看起来这是 libxml v2.9.1 中的问题,而不是我最初认为的 libxslt 问题。我认为将 libxml 的版本降级到
我还向 xml[at]gnome.org 记录了一个错误报告
【问题讨论】:
-
你能解决这个问题吗?如果是这样怎么办?
-
服务器被更新为使用 libxslt 的开发版本,其中包含对功能的更改或错误。服务器已更新/回滚。对 libxslt 更改的调查仍在进行中。