您好,我想在我的 Android 应用程序中以编程方式使用 xsl 样式表转换 xml。
这是我的变压器功能:
//-----------------------------XLST SAXON TRANSFORMATION--------------------
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.printStackTrace();
}
}
并使用他的代码开始转换:
private static String sourcePath;
private static String xsltPath = SD_CARD_PATH +"/"+ "ets4_calimero_gui.xsl";
private static String resultDir;
sourcePath = SD_CARD_PATH + "/"+Name+".xml";
resultDir = SD_CARD_PATH + "/"+Name+"_xlst.xml";
System.setProperty("javax.xml.transform.TransformerFactory",
"net.sf.saxon.TransformerFactoryImpl");
simpleTransform(sourcePath, xsltPath, resultDir);
Log.d("XLST","XML saved as" + resultDir);
但是创建的 .xml 文件是空的,并且 logcat 会抛出以下错误:
09-27 13:44:41.940: W/System.err(7736): (Location of error unknown)java.io.IOException: Couldn't open file:///mnt/sdcard/rg.xml
但是 rg.xml 存在,我可以在我的外部 sd 卡上看到它。我还添加了 saxon.jar 作为类路径并将其插入到 libs 文件夹中。
任何人都知道为什么转换不起作用?