unknown protocol: c 解决方法,致命错误:“无法编译样式表”

本文介绍了使用 XSLTransformer 解析 XML 样式表时遇到的 unknownprotocol:c 错误及解决方案。该问题源于 JDK 自带的 XALAN 版本不完整,文中提供了解决方案并详细说明了如何通过添加 Apache XALAN 的 JAR 包来修复此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用XSLTransformer解析xml样式表,出现
unknown protocol: c 解决方法,致命错误:“无法编译样式表”!
后来参照大哥级http://blog.youkuaiyun.com/Aniao/archive/2009/11/26/4881824.aspx文档后,醍醐灌顶!

问题的出现是因为JDK自带的XALAN是阉割版的,很多功能没有,比如JAVA类型的方法调用。怎么办呢?JAVA官方的写法是:

Apache - The org.apache classes, which have never been supported J2SE APIs but are used by the javax.xml package, have moved in 5.0 to com.sun.org.apache.package.internal so that they won't clash with more recent, developer-downloaded versions of the classes. Any applications that depend on the org.apache classes being part of the J2SE release must do one of the following to work in 5.0:

Code the application so it uses only the supported interfaces that are part of JAXP.
Download the org.apache.xalan classes from Apache.
简单地说就是JDK从1.5以后整合了一些APACHE的类库,但是把包名从org.apache改成了com.sun.org.apache.package.internal以避免冲突。所以那些被阉割的部分大家可以放心地把APACHE的包放进CLASSPATH而不用怕冲突。所以只要下载一个XALAN的Jar包放到项目中即可解决这个问题

Apache Xalan官方关于要包括的JAR包的情况:


To use Xalan-Java, you need the following which are available from either a binary or source distribution:

xml-apis.jar JAXP APIs
xercesImpl.jar (or another XML Parser)
xalan.jar
xsltc.jar the XSLTC processor, if you choose a 2jars distribution
serializer.jar which are the serializer classes of Xalan-Java
但是实际上,并不需要包含xsltc.jar,因为如上所述,它已经被jdk1.5以及以上版本给包含了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值