gpt4 book ai didi

java - 在Java程序中使用XSLT进行XML转换

转载 作者:行者123 更新时间:2023-12-02 05:25:49 25 4
gpt4 key购买 nike

我正在尝试在 java 应用程序中使用 XSLT 转换我的 XML 文件。下面是我的代码,但它给出了找不到 classNot 的错误。我尝试解决这个问题,但该方法在jdk 5之后不再使用。您能给我在 java 程序中使用 XSLT 转换 XML 的更好方法吗?下面是我的代码:

import java.io.File;

import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;


class Transform {
public static void main(String[] args) throws TransformerException {
String stylesheetPathname = "C:/abc.xml";
String inputPathname = "C:/scripts/transform.xslt";
String outputPathname = "C:/abc_transformed.xml";

TransformerFactory factory = TransformerFactory.newInstance();
Source stylesheetSource = new StreamSource(new File(stylesheetPathname).getAbsoluteFile());
Transformer transformer = factory.newTransformer(stylesheetSource);
Source inputSource = new StreamSource(new File(inputPathname).getAbsoluteFile());
Result outputResult = new StreamResult(new File(outputPathname).getAbsoluteFile());
transformer.transform(inputSource, outputResult);
}
}

错误:

Exception in thread "main" javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found
at javax.xml.transform.TransformerFactory.newInstance(TransformerFactory.java:107)
at Transform.main(Transform.java:18)


Caused by: java.lang.ClassNotFoundException:org.apache.xalan.processor.TransformerFactoryImpl
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at javax.xml.transform.FactoryFinder.getProviderClass(FactoryFinder.java:119)
at javax.xml.transform.FactoryFinder.newInstance(FactoryFinder.java:182)
at javax.xml.transform.FactoryFinder.findJarServiceProvider(FactoryFinder.java:364)
at javax.xml.transform.FactoryFinder.find(FactoryFinder.java:286)
at javax.xml.transform.TransformerFactory.newInstance(TransformerFactory.java:101

最佳答案

我添加了 xml-apis.jar,xercesImpl.jar,错误已解决。感谢您的努力和帮助。

关于java - 在Java程序中使用XSLT进行XML转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26040840/

25 4 0
文章推荐: java - netty CompositeByteBuf是直接的还是间接的
文章推荐: java - servlet 和/或 jsp 之间的通信
文章推荐: java - 显示日期类中的日期
文章推荐: java - 如何将 List 转换为 List