在Android中使用XSLT转换XML文件

在Android中使用XSLT转换XML文件,android,xml,xslt,Android,Xml,Xslt,我是Android新手 我想使用XSLT将XML文件转换为HTML格式,以便在android中显示它 你能告诉我一些教程或例子吗 我也试过密码 但它不起作用。我不确定“StringOutputStream”是什么 提前感谢。将xml和xslt文件都放在原始文件夹中。 生成的html文件将存储在SD卡中。 使用以下代码 import java.io.File; import javax.xml.transform.Source; import javax.xml.transform.Transf

我是Android新手

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

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

我也试过密码 但它不起作用。我不确定“StringOutputStream”是什么


提前感谢。

将xml和xslt文件都放在原始文件夹中。 生成的html文件将存储在SD卡中。 使用以下代码

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();
        }
    }
}
谢谢
Deepak

将xml和xslt文件都放在原始文件夹中。 生成的html文件将存储在SD卡中。 使用以下代码

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();
        }
    }
}
谢谢 Deepak

别忘了添加:

< uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<使用权限android:name=“android.permission.WRITE\u EXTERNAL\u STORAGE”/
正如noob最终发现的:)

不要忘记添加:

< uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<使用权限android:name=“android.permission.WRITE\u EXTERNAL\u STORAGE”/

这是noob最终发现的
AndroidManifest.xml

@Deepak:谢谢你的回复。这会导致错误“应用程序意外停止。请重试”。我使用了给定链接中使用的相同xsl和xml文件。感谢从url下载示例xml和xslt文件。但是,请给出单独的名称并将其粘贴到raw文件夹@Deepak中:我使用了您提供的确切代码,并将xml和xslt文件放在raw文件夹中。(我手动创建了raw文件夹)现在我没有收到任何错误,但也没有输出。我能做什么?您的输出存储在一个文件中,您必须在sd卡中提取该文件mydata.html。要查看输出,请从您的SD卡中删除该文件emulator@Deepak:我在查找文件mydata.html时遇到了一点问题。我怎么能找到它?@Deepak:谢谢你的回复。这会导致错误“应用程序意外停止。请重试”。我使用了给定链接中使用的相同xsl和xml文件。感谢从url下载示例xml和xslt文件。但是,请给出单独的名称并将其粘贴到raw文件夹@Deepak中:我使用了您提供的确切代码,并将xml和xslt文件放在raw文件夹中。(我手动创建了raw文件夹)现在我没有收到任何错误,但也没有输出。我能做什么?您的输出存储在一个文件中,您必须在sd卡中提取该文件mydata.html。要查看输出,请从您的SD卡中删除该文件emulator@Deepak:我在查找文件mydata.html时遇到了一点问题。我怎样才能找到它?这应该作为对这个问题的评论。虽然有帮助,但它不能回答问题。这应该作为对问题的评论。虽然有帮助,但它不能回答问题。