使用浏览器XslProcessor对象时,xsl:message terminate=true无法返回错误消息的问题咨询
使用浏览器XslProcessor对象时,xsl:message terminate=true无法返回错误消息的问题咨询
我现在遇到一个XSLT处理的问题,先把我的代码和使用场景说明一下:
首先是我使用的XML输入内容:
<?xml version="1.0" encoding="utf-8"?> <songList/>
对应的XSLT样式表代码:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" omit-xml-declaration="yes"/> <xsl:template match="/"> <out>ROOT found</out> <xsl:message terminate="yes"><xsl:value-of select="'Test message - ZZZ'"/></xsl:message> </xsl:template> </xsl:stylesheet>
我有一个HTML页面调用这个处理逻辑,当我把terminate="no"或者直接删掉这一行时,结果是符合预期的:
<out>ROOT found</out>
调用的JS代码参考了MDN上的示例,大致是这样的:
try{ resultDoc = processor.transformToFragment(xmlDoc, document); } catch (err) { console.log('err=' + err); return false; }
现在我的问题是:我用的是Firefox(基于Gecko引擎),查资料显示Gecko支持xsl:message,但实际使用下来感觉支持得很有限——当设置terminate="yes"时,处理确实会终止,但catch块里的err是空的,完全拿不到xsl:message里定义的消息内容。我在console.log('err=' + err);这行打了断点,能触发这个断点,但错误信息就是没有内容。
我是不是哪里操作错了?有没有办法能获取到xsl:message里的消息内容呢?
备注:内容来源于stack exchange,提问作者walbury
相关产品推荐
相关产品推荐

