Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    décembre 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2018
    Messages : 1
    Points : 1
    Points
    1

    Par défaut Comment je peux intégrer un fichier css avec une vue XSLT sur android studio?

    Bonjour à tous,
    Je suis entrain de créer un projet sous android studio.
    Au début j'ai créer une vue avec xml à travers laquel elle nous emmène vers une autre vue XSLT.
    Pour faire une vue xslt,j'ai classer des données dans le fichier xml que je les ai récupéré à travers le fichier xslt et j'ai ajouté ensuite un autre fichier css pour le design de la page
    le problème c'est qu'il ne reconnait pas le fichier css et même les images que je les ai définis aussi dans le fichier xml comme ceci:
    Voici le code java de la 2ème activity xslt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    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;
     
    }
     
    }
    et voici le code MainActivity
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    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);
        }
     
    }
    Voici ce qui est affiché sur écran:
    Pièce jointe 466992

    Pouvez-vous me proposer une solution pour qu'il puisse reconnaître les fichiers css et les images
    Merci à tous.

  2. #2
    Membre émérite
    Inscrit en
    octobre 2011
    Messages
    1 305
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 1 305
    Points : 2 294
    Points
    2 294

    Par défaut

    Pour insérer css dans le cas où on genère html via une transformation xslt, on fait "normalement" sans sourci dans le fichier xslt et en particulière quand on genère le cadre html/head... Si on a une chance de voir le xslt, ça peut aider; sinon ça s'établis en gros comme ça.
    Code xslt : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" encoding="utf-8" />
    <xsl:template match="/">
    <html>
    <head>
        <meta charset="utf-8" />
        <title>xyz</title>
        <link rel="stylesheet" type="text/css" href="cin2.css" />
        <!-- etc -->
    </head>
    <body>
        <xsl:apply-templates select="*" />
    </body>
    </html>
    </xsl:template>
    <!-- etc ... les autres templates ... -->
    </xsl:stylesheet>
    Il se peut, dans les cas concrets, qu'on doit prendre en compte le parcours relatif où se trouver le css; mais vous devrez savoir comment faire.

    En ce qui concerne photo, ça dépends comme l'élément s'est fait transformé correctement ...

Discussions similaires

  1. PROBLEME avec R.layout.activity sur ANDROID STUDIO
    Par Moharisab dans le forum Android
    Réponses: 0
    Dernier message: 09/03/2019, 19h59
  2. [Windows Phone 8] Comment résoudre le nom d'hôte / machine avec une adresse IP sur Windows Phone
    Par middle6 dans le forum Windows Phone
    Réponses: 0
    Dernier message: 08/11/2013, 11h57
  3. comment intégrer un fichier css selon le navigateur IE - Firefox Mozzila
    Par taratatasoleil dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 23/06/2012, 15h22
  4. comment je peux lire un fichier audio avec java.
    Par imad24 dans le forum Multimédia
    Réponses: 2
    Dernier message: 22/01/2010, 17h28
  5. Lien vers un fichier XML avec une feuille XSLT
    Par Raphael_Lemaire dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 01/10/2008, 23h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo