【发布时间】:2015-04-27 10:06:22
【问题描述】:
感谢您查看我的问题。
我使用 saxon java api 作为 XSLT 处理器。很难通过 saxon jar 文件捕获异常返回。
我能够打印 javax 异常。但是需要在saxon返回的字符串中获取异常。
我用来转换 xml 的以下函数:
import java.io.File;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
public class Main {
/**
* Simple transformation method.
* @param sourcePath - Absolute path to source xml file.
* @param xsltPath - Absolute path to xslt file.
* @param resultDir - Directory where you want to put resulting files.
*/
public static void simpleTransform(String sourcePath, String xsltPath,
String resultDir) {
TransformerFactory tFactory = TransformerFactory.newInstance();
try {
Transformer transformer =
tFactory.newTransformer(new StreamSource(new File(xsltPath)));
transformer.transform(new StreamSource(new File(sourcePath)),
new StreamResult(new File(resultDir)));
} catch (Exception e) {
e.message();
}
}
public static void main(String[] args) {
//Set saxon as transformer.
System.setProperty("javax.xml.transform.TransformerFactory",
"net.sf.saxon.TransformerFactoryImpl");
simpleTransform("d:/project/hob/AppModule.xml",
"d:/project/hob/create-fragment.xslt", "C:/");
}
}
你们能否建议将撒克逊异常放入字符串中。下面是异常返回的 saxon jar 文件示例。
SXJE0008:无法将 xs:yearMonthDuration 转换为所需的 Java 类型
谢谢, 迪帕克
【问题讨论】:
-
你检查过Exception.getCause() 是否持有撒克逊例外吗?
-
@wonderb0lt: 我试过 getcause() 但它返回不返回 jar 文件异常。