Конвертировать XML-файл с помощью XSLT в Android

1

Я новичок в Android.

Я хочу преобразовать XML файл в формат HTML, используя XSLT, чтобы отобразить его в android.

Не могли бы вы рассказать мне несколько руководств или примеров?

Я также пробовал коды в Android: конвертировать xml с помощью xslt Но это не сработало. Я не уверен, что такое "StringOutputStream".

Спасибо заранее.

Теги:
xslt

2 ответа

4
Лучший ответ

Поместите оба файла xml и xslt в папку raw. Сгенерированный 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();
        }
    }
}

Спасибо Дипак

  • 0
    @Deepak: Спасибо за ответ. Это дает мне ошибку «Приложение неожиданно остановилось. Пожалуйста, попробуйте еще раз». Я использовал те же файлы xsl и xml, которые использовались в данной ссылке. Спасибо
  • 1
    Загрузите образец файла xml и xslt с URL. но дайте отдельное имя и вставьте его в необработанную папку codingwithpassion.blogspot.com/2010/12/…
Показать ещё 4 комментария
0

Не забудьте добавить:

< uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

в AndroidManifest.xml, так как в конце концов выяснилось, что noob:)

  • 4
    Это должно быть включено как комментарий к вопросу. Хотя это полезно, оно не отвечает на вопрос.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню