Итак, я создаю проект с помощью android studio.
Вначале я создал представление XML, которое переводит нас в представление xslt.
Чтобы создать представление xslt, яЯ отсортировал данные в xml-файл, который я получил через xslt-файл, а затем добавил еще один css-файл для оформления страницы, проблема в том, что он не распознает css-файл и даже изображения, которые я определил в xmlвот такой файл:
<photo src="ci1.jpg"/>
вот основной класс 2-го действия:
public class LoadXSLTinWebview extends Activity {
WebView webview;
/** Called when the activity is first created. */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_PROGRESS);
WebView webview = new WebView(this);
setContentView(webview);
webview.loadUrl("C:/Users/Admin/AndroidStudioProjects/Oranguide/app/src/main/assets/cin2.css");
//Reading XSLT
String strXSLT = GetStyleSheet(R.raw.cinemaxsl);
//Reading XML
String strXML = GetStyleSheet(R.raw.cinemaxml);
/*
* Loading XSLT...
*/
//Transform ...
String html=StaticTransform(strXSLT, strXML);
//Loading the above transformed XSLT in to Webview...
webview.loadData(html,"text/html","utf-8");
}
/*
* Transform XSLT to HTML string
*/
public static String StaticTransform(String strXsl, String strXml) {
String html = "";
try {
InputStream ds = null;
ds = new ByteArrayInputStream(strXml.getBytes("UTF-8"));
Source xmlSource = new StreamSource(ds);
InputStream xs = new ByteArrayInputStream(strXsl.getBytes("UTF-8"));
Source xsltSource = new StreamSource(xs);
StringWriter writer = new StringWriter();
Result result = new StreamResult(writer);
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(xsltSource);
transformer.transform(xmlSource, result);
html = writer.toString();
ds.close();
xs.close();
xmlSource = null;
xsltSource = null;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerFactoryConfigurationError e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return html;
}
/*
* Read file from res/raw...
*/
private String GetStyleSheet(int fileId) {
String strXsl = null;
InputStream raw = getResources().openRawResource(fileId);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
int size = 0;
// Read the entire resource into a local byte buffer.
byte[] buffer = new byte[1024];
try {
while ((size = raw.read(buffer, 0, 1024)) >= 0) {
outputStream.write(buffer, 0, size);
}
raw.close();
strXsl = outputStream.toString();
Log.v("Log", "xsl ==> " + strXsl);
} catch (IOException e) {
e.printStackTrace();
}
return strXsl;
}
}
А вот MainActivity:
public class MainActivity extends AppCompatActivity {
Button btn;
WebView Webview1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Cliquer();
}
});
}
public void Cliquer() {
Intent intent = new Intent(this,LoadXSLTinWebview.class);
startActivity(intent);
}
}
И вот чтоон показывает на экране введите описание изображения здесь
Можете ли вы найти мне решение, чтобы оно могло распознавать файл CSS и изображения?
Большое спасибо.