android - 在 Android 中使用 XSLT 转换 XML 文件

标签 android xml xslt

我是 Android 新手。

我想使用 XSLT 将 XML 文件转换为 HTML 格式以在 android 中显示它。

你能告诉我一些教程或示例吗?

我还尝试了 Android: Convert xml using xslt 中的代码 但它没有用。我不确定那里的“StringOutputStream”是什么。

提前致谢。

最佳答案

将您的 xml 和 xslt 文件放在 raw 文件夹中。 生成的 html 文件将存储在 sdcard 中。 使用以下代码。

import java.io.File;

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

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;

public class XsltTester extends Activity {

    private static String TAG = XsltTester.class.getSimpleName();

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        try {

            Source xmlSource = new StreamSource(this.getResources().openRawResource(R.raw.weather));
            Source xsltSource = new StreamSource(this.getResources().openRawResource(R.raw.weatherxsl));

            TransformerFactory transFact = TransformerFactory.newInstance();
            Transformer trans = transFact.newTransformer(xsltSource);
//          FileOutputStream fo = new FileOutputStream(f);
//          fo.write(resizeBitMapImageToByteArray(photoAlbumBean));
//          fo.close();
            File f = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/mydata.html");

//            OutputStream output = new StringOutputStream();
            StreamResult result = new StreamResult(f);
            trans.transform(xmlSource, result);

        } catch (TransformerConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (TransformerFactoryConfigurationError e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (TransformerException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

谢谢 迪帕克

关于android - 在 Android 中使用 XSLT 转换 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6215001/

相关文章:

android - 用于检测移动网络变化的广播接收器

java - unlockCanvasAndPost 中的 IllegalArgumentException(安卓动态壁纸)

xml - 根据 XSLT 中的子节点值选择节点

xslt - "xmlns:xmlns"正在使用 XSLT 添加到 xml 输出文件中,并且 exclude-result-prefixes= "sii"没有从元素中排除命名空间

java - JSON_encoded 字符串到 Java JSONObject

Android - Intent 返回后似乎不会调用 Activity

sql - 如何在 GROUP BY 操作中聚合 XML 片段

java - Jaxb 没有发现我的基类的正确儿子

java - 更改左侧工具栏默认图标

javascript - 如何突出显示点击链接的相应标题?