【问题标题】:How to validate XSL file?如何验证 XSL 文件?
【发布时间】:2014-02-09 13:54:04
【问题描述】:

谁能帮我验证 XSL 文件?我不想为开始/关闭标签验证它,而是为“内部属性”验证它。 例如: 我的 XSL 文件包含行 <td><xsl:value-of select="year"/></td> 我需要检查这个是否有语法错误,例如<td><xsl:vae-of select="year"/></td>

有什么方法可以用 javascript 或 jQuery 做到这一点吗?

【问题讨论】:

  • 我认为使用未在其命名空间中定义的元素将被 XML 验证捕获。所以也许这就是你的答案:stackoverflow.com/questions/6334119/…
  • 它可能是,但只是部分......我会显示消息有什么问题。在这种情况下,类似于错误的参数“vae-of”。我知道它存在,但我找不到它

标签: validation xslt


【解决方案1】:

XSLT 处理器检查样式表代码,因此在 Mozilla 浏览器中,您可以将带有样式表代码的 DOM 文档传递给 XSLTProcessor 对象的 importStylesheet 方法,例如

var proc = new XSLTProcessor();
var sheet = new DOMParser().parseFromString([
    '<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">',
    '<xsl:template match="/"><xsl:vae-of select="year"/></xsl:template>',
    '</xsl:stylesheet>'
    ].join('\n'), 'application/xml');
try {
    proc.importStylesheet(sheet);
}
catch(e) {
    // handle error here e.g.
    console.log(e.message);
}

输出“组件返回失败代码:0x80600001 [nsIXSLTProcessor.importStylesheet]”。

但请注意,XSLT 1.0 处理器应该在forwards compatible 模式下处理版本大于 1.0 的样式表代码,如果您想将用户输入代码验证为 XSLT 1.0,则需要确保它有 version="1.0" 来捕获针对 XSLT 语言 1.0 版的任何错误。

当然,该错误消息对于识别代码中的问题并没有多大帮助。

【讨论】:

  • 就是这样!谢谢 :) 我会尝试查找有关错误行的一些信息,但这就是我要寻找的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-27
  • 2021-02-25
  • 2015-09-26
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多