问题标签 [xsltc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3927 浏览

java - XML 代码运行正常,但 junit 因 NoClassDefFound 而失败

我正在将我的环境从 eclipse 3.3.1 和 java 1.4 升级到 eclipse 3.4.1 和 java 1.5。我的单元测试在 jUnit 3 中。

日食 java 版本 1.5.0__17

独立的环境版本 1.5.0__12 或 1.5.0-17 都可以工作。

我有一个将 XML 文件写入磁盘的类的方法。它调用 TransformerFactory tf = [javax.xml.transform.]TransformerFactory.newInstance(); 当我在 Eclipse 之外运行代码时,它运行良好。当我在 Eclipse 中运行 jUnit 中的代码时,我得到下面的堆栈跟踪。缺少的类在 java 1.4 的 rt.jar 中,而不是在 java 5 中,但不应该从我这里抽象出来吗?

我怎样才能使测试通过?

当我从应用程序运行 eclipse 中的代码时,我得到了同样的错误。

更新 我在堆栈跟踪的内部做了更多的研究。工作版本(在 Eclipse 之外)正在返回一个 com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl 的实例,它是 javax.xml.transform.TransformerFactory.newInstance() 中的后备 impl 类名

0 投票
1 回答
315 浏览

xslt - 预编译的 XSLT、ReBase 和 NGEN

高级性能问题在这里。这是我的场景:

我有一个包含数千个 XSLT 文档的数据库。一个用于网站的每个页面,因此这些将 XML 转换为 HTML。ASP.NET Web 服务器(场)从数据库加载 XSLT 文档,并使用它们为每个 Web 请求呈现 HTML。

我已经实现了使用 XslCompiledTransform 的优化并在数据库刷新之间缓存它(每 30 分钟)。我希望通过使用 xsltc.exe 将 XSLT 预编译为 DLL 来进一步提高性能。这应该消除 XslCompiledTransform 创建的所有动态方法调用。

因此,我有一个单独的服务器将 XSLT 写入文件并使用 xsltc.exe 运行它们。大约需要 20 分钟,但没关系。然后我将 DLL 放到每个网络服务器上。现在我可以让网络服务器根据需要动态加载 DLL。这是我用来将程序集加载到 XslCompiledTransform 中的代码:

我应该 ReBase.exe 目录中的 DLL 和/或 NGEN.exe 它们吗?ReBase 大约需要 5 分钟,而带有 /queue 的 NGEN.exe 大约需要 10 分钟,在此期间 CPU 会受到重击 - 可能会影响网络服务器的流量服务功能。考虑到我如何通过从程序集中读取字节来加载程序集,是否会引用本机 NGEN 图像,或者 JIT 是否会启动?

对此的任何/所有见解将不胜感激!

马尔科姆

0 投票
1 回答
320 浏览

asp.net - 如何将程序集信息包含到 xsltc 编译的 dll 中?

我需要在我的 dll 中包含程序集信息,我使用带有 XSLTC.exe 的命令提示符手动编译了 XSLT 文件。有谁知道怎么做?合并?

0 投票
0 回答
156 浏览

xslt - exslt distinct() 不适用于 xalan 编译(但适用于解释)

我有这个:

如果我取消注释第二行,当我在 xalan 中使用带有已编译样式表的样式表时,它不起作用1 。

当我从没有-xsltc.

难道我做错了什么?


1我收到一些神秘的错误消息,处理停止。这是此实例的错误消息:ERROR: '',但我也得到了类似的东西ERROR: -1

我的<xsl:stylesheet>标题包含xmlns:set="http://exslt.org/sets".

0 投票
2 回答
1313 浏览

c# - XSLTC.EXE MSBuild 任务

我的 ASP.NET Web 应用程序中使用了几个 XSLT。每当我构建项目时,我都希望将这些文件编译为 dll。目前,我正在通过从 vs2010 工具命令提示符调用 xsltc.exe 手动编译 xslts。

如何为 xsltc.exe 添加 msbuild 任务,以便在我构建项目时生成程序集?

我正在使用.NET 4.0。

0 投票
0 回答
151 浏览

java - XSLTC redirect:write file= 不尊重 Ant 任务 destdir 属性

我有一个看起来像这样的 Ant xslt 任务:

在 event.xsl 我有一个指令:

对于 Xalan-J,这完全符合预期,生成的文件被写入destdir

我正在尝试删除 Xalan-J 依赖项以使用 Java 1.4+ 中的默认 XSLTC。XSLTC在这种情况下不尊重选择。相反,建议将其替换为:

这可以正常工作,除了文件被写入当前工作目录而不是destdir。.tmp.log文件正确地以destdir结尾

任何人都知道为什么destdir被 XSLTC 的redirect:write忽略了吗?以及如何解决?

有一些解决方法,例如为该目录创建一个 build.xml 并使用 Ant 任务“ant”以 destdir 作为工作目录进行调用。或者我可以分叉到 Ant 中的有效 chdir 以达到类似的目的。但是,如果 destdir 像 Xalan-J 一样受到尊重,那么就没有必要了。

0 投票
1 回答
45 浏览

java - XSLTC creating classes with illegal method names

I'm trying to compile an XSLT transformation using XSLTC, but the resulting class is not useable, because it contains methods with illegal names.

For illustration purposes, here is a (simplified) version of the stylesheet I use:

#xA;

What this is trying to accomplish is to change the namespace of all the elements of an XML file to a different one, so I'm basically using a modified identity transformation. However, XSLTC seems to have a problem with the '#' characters in the namespace URIs (even though as far as I understand, they should be legal). Because the class file that XSLTC creates when compiling the above looks like this (decompiled, of course):

#xA;

Note the '#' in some of the generated method names, which is illegal according to the Java spec, and no surprise that it results in a ClassFormatException courtesy of the classloader when I actually try to use the class.

Any ideas if I can somehow get XSLTC to compile the XSL into something valid? Can I perhaps modify my stylesheet somehow to accomplish the same thing that doesn't cause this problem?

And no, I can not change the namespaces themselves, they're fixed because they belong to an external system that I have to deal with but have no influence on.

0 投票
1 回答
54 浏览

c# - 如何在运行时从 dll 中引用静态类

我正在xsltc.exe使用A.dllA.xslt. 然后A.dll在我的项目中引用并进行转换:

但是我如何A.dll在运行时参考并进行转换?