Я новичок в Android.
Я хочу преобразовать XML файл в формат HTML, используя XSLT, чтобы отобразить его в android.
Не могли бы вы рассказать мне несколько руководств или примеров?
Я также пробовал коды в Android: конвертировать xml с помощью xslt Но это не сработало. Я не уверен, что такое "StringOutputStream".
Спасибо заранее.
Поместите оба файла 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();
}
}
}
Спасибо Дипак
Не забудьте добавить:
< uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
в AndroidManifest.xml
, так как в конце концов выяснилось, что noob:)