【问题标题】:wwwsqldesigner can't perform xlst transformation on Nginxwww sql 设计器无法在 Nginx 上执行 xslt 转换
【发布时间】:2015-12-18 14:12:28
【问题描述】:

我正在尝试安装 wwwsqldesigner 并且几乎成功了,只是生成的 sql 代码不起作用。当我按下generate SQL 按钮时,出现以下错误:

XML error: Failed to execute 'importStylesheet' on 'XSLTProcessor': parameter 1 is not of type 'Node'.

据我了解here

默认不构建此模块

但我对 Nginx 的经验很少(只有几天),所以如果有人可以帮助我一步一步地指导如何在 Nginx 上启用 XSLTProcessor,那就太好了。

这是用于执行转换的 *.xsl 文件:output.xsl

谢谢。

【问题讨论】:

  • 您收到的错误是 XML 错误。您正在调用处理器并且代码运行,这意味着它(可能)正确安装。但是,它或者找不到您的样式表,它不是正确的 XML,它没有正确的访问权限,或者它没有作为 XML 文档节点传递。这些只是有根据的猜测。
  • 或者...参数1指的是样式表中使用的实际参数,或者用作输入XML,在这种情况下错误表明它也必须是文档节点。
  • 我已尝试进一步调查并参考此站点ondras.zarovi.cz/sql/demo,似乎返回时xml 文档未被解析/未返回,xhr.responseXML 返回时为@987654329 @,但xhr.responseText 没问题。当我通过var parser = new DOMParser(); var xmlDoc = parser.parseFromString(xmlString, "application/xml"); 手动解析然后将xmlDoc 注入到应该接收它的函数时,它开始工作,现在我有两个选择,找出它为什么不起作用,或者将此修复程序永久应用。谢谢你的猜测。
  • 问题已解决,请参阅我的回答。非常感谢您的猜测!

标签: xslt nginx xslt-1.0


【解决方案1】:

mimetype 未在 nginx 配置中注册。通过添加以下内容解决了该问题:

types {
    application/xml        xsl;
}

/nginx/conf/mime.types 文件,按照这个答案的建议:https://stackoverflow.com/a/19630564/947111

【讨论】:

  • 啊哈,很好的发现!我没有意识到检索到的 XSL 可能是不正确的 mime 类型。是的,这是一个常见问题(如果之前未注册,它基本上可以应用于任何扩展名和文件类型)。
猜你喜欢
  • 1970-01-01
  • 2014-02-01
  • 2022-01-22
  • 2020-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
相关资源
最近更新 更多