XSL - "无法编译样式表" 错误,但语法正确。

8 浏览
0 Comments

XSL - "无法编译样式表" 错误,但语法正确。

在Java中执行这个操作时,我遇到了这个错误:

InputStream foo = getClass().getResourceAsStream(XML_TRANSFORM);
javax.xml.transform.Transformer transformer = factory.newTransformer(new StreamSource(foo)); // 错误

我无法找出错误在哪里,因为我没有更多的信息,而且因为在线的XML验证器告诉我没有语法错误(比如:https://www.w3schools.com/xml/xml_validator.asp

0
0 Comments

XSL - "Can not compile stylesheet" 错误,但语法是正确的

在XSLT中有一个稍微奇怪的规则,即如果你在样式表的顶层有以下代码:

这是有效的(但会被忽略且无用),而如果你有以下代码:

则是无效的(会报错)。

如果处理器没有告诉你错误的位置,那可能是因为你的Java应用程序将系统错误输出流发送到了你看不到的地方。要么在你的应用程序中解决这个问题,要么在从Java应用程序编译样式表之前,尝试使用像oXygen这样的环境来调试你的样式表。由于你的错误表明你对XSLT语言的基础知识不太熟悉,所以你会受益于使用类似oXygen(或Stylus Studio或XML Spy)这样的开发工具。

谢谢你的回复。实际上,我唯一的信息是“ERROR: 'null'”。结果证明,我的InputStream对象是null,因为我的xsl路径是错误的。当我的InputStream正确时,就不会出现你所说的错误。简单地说,转换生成了一个没有<TimeSeriesDoc>标签的文档。

0