在 Chrome 中调试 XSLT

发布于 2024-11-02 07:29:22 字数 1540 浏览 0 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

网名女生简单气质 2024-11-09 07:29:22
  • 使用节点测试检查XPath查询的结果。
  • 使用文档函数测试文件路径
  • 使用 JavaScript 控制台对 XML 运行 XPath 查询数据源
  • 使用内联模板而不是 xsl:include 来消除路径问题
  • 使用注释来消除引用有错误模板的 xsl:include 语句
  • 使用处理指令来注释存在问题的代码块XML 注释
  • 使用 嵌入样式表 解决同源策略限制
  • 使用 input用于打印 xsl:variable 值的标记。
  • 使用属性值模板打印未知值
  • 使用简化样式表参数化 XPath 来模块化模板
  • 使用 Opera 作为交叉引用,因为它在 XSLT 错误消息中显示行号。
  • Use node tests to check the results of XPath queries.
  • Use the document function to test file paths
  • Use the JavaScript console to run XPath queries on the XML data source
  • Use inline templates instead of xsl:include to eliminate path issues
  • Use comments to eliminate xsl:include statements referencing buggy templates
  • Use processing-instructions to comment blocks of code that have XML comments
  • Use an embedded stylesheet to workaround same-origin policy restrictions
  • Use input tags to print xsl:variable values.
  • Use attribute value templates to print unknown values
  • Use simplified stylesheets and parameterized XPath to modularize templates
  • Use Opera as a cross-reference, since it shows line numbers in its XSLT error messages.
七婞 2024-11-09 07:29:22

在 Linux 上,有一个名为 xsltproc 的工具,它接受 XSL 和 XML 并输出转换。

它还显示错误周围的上下文。

我发现这在开发时最有用,因为我可以测试更改的结果,而无需启动并运行开发服务器。它就是有效的。

但是,我注意到转换的结果可能与 Chrome 的结果不同。我不知道为什么会这样,我的转换是否不合格,Chrome 是否不合格,或者 xsltproc 是否不合格。

编辑 我对 Chrome 和 xsltproc 之间的差异(渲染转换略有不同)的评论可能是无效

  • 我对 XML 架构进行了一些修改,从那时起,xsltproc 就可以正确生成标签(基于架构中类型的类型名称),但 Chrome 却不能。
  • 我正在执行硬重新加载以避免 Chrome 重复使用缓存。
  • 我可以看出 Chrome 正在使用新的 xsl,因为还包括正在渲染的其他更改。
  • 由于某种原因,只有架构相关的测试在 Chrome 中不起作用。
  • 我发现现在它神奇地工作了,没有对 xsl 进行任何更改,只是在不同的一天。

所以我猜想 xsl 的某些部分以某种方式被缓存了(也许只是模式位 - 完全在这里猜测)...因此为什么 Chrome 中的一些调试会非常好。

On linux there is a tool called xsltproc which takes an XSL and XML and outputs the transform.

It also shows context around errors.

I've found this most useful when I'm developing as I can test the result of my changes without the need to have a development server up and running. It just works.

However, I've noticed that the results of the transform can differ from that of Chrome for example. I don't know why this is, whether my transform was non-conforming, if Chrome is non-conforming, or if xsltproc is non-conforming.

EDIT My comment about differences between Chrome and xsltproc rendering the transform slightly differently is likely invalid.

  • I had modified the XML schema somewhat, and since then, xsltproc was generating tags (based on type name of types in the schema) correctly, but Chrome was not.
  • I was doing hard reloads to avoid Chrome reusing the cache.
  • I could tell Chrome was using the new xsl as there was other changes included that were being rendered.
  • Only the schema related tests were not working in Chrome for some reason.
  • I've since found that now it is magically working, with no changes to the xsl, just on a different day.

So I guess some part of the xsl was being cached somehow (perhaps just the schema bit - totally guessing here)... hence why some debugging in Chrome would be super nice.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文