Affichage des balises xml en html

Eileen57 Messages postés 3 Statut Membre -  
 grego -
Bonjour,

Je souhaite afficher un bout de mon document xml tel quel (avec les noeuds sous forme de balises) dans une page html.
J'utilise une feuille xsl qui me permet de choisir les données que je veux afficher. (j'utilise <xsl:copy-of>)
Je voudrais savoir s'il y a un moyen plus simple que de remplacer les <> par leur code html pour forcer leur affichage dans ma page web...

Est-ce que quelqu'un a une idée?

Merci d'avance.
A voir également:

4 réponses

Dalida Messages postés 7114 Statut Contributeur 923
 
salut,

as-tu fait des essais ?
comment l'intègres-tu pour le moment ?
il faut préciser le type Mime et peut être utiliser un prologue xml. mais je ne sais pas combien de navigateurs sont capables de le gérer.

par contre l'expérience m'intéresse. aurais-tu un bout de code typique (avec des infos bidons) juste pour pouvoir faire des essais ?
0
Eileen57 Messages postés 3 Statut Membre
 
Salut,

Oui, j'ai fait plusieurs essais... En voici deux:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method= "html" indent="yes"/>

<xsl:template match="/">
<xsl:for-each select="//book">
<xsl:copy-of select="translate(.,'&lt','<')"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

Comme ça, ça ne m'affiche plus du tout les balises et y a des bugs dans le texte qui s'affiche.

<xsl:template match="/">
<xsl:param name="result">
<xsl:for-each select="//book">
<xsl:copy-of select="."/>
</xsl:for-each>
</xsl:param>
<xsl:value-of select="translate($result,'&lt','<')"/>
</xsl:template>

Là, le problème, c'est que dès que je passe le résultat du copy-of en paramètre de toute manière, je perds les balises... donc le translate n'a aucun intéret...

J'ai cherché sur le net mais j'ai rien trouvé, pour l'instant, à part la méthode brutale qui consiste à recréer via la xsl avec les codes html des <> et autres caractères spéciaux mon document xml...

ci-après juste un bout du doc xml :

<library>
<book language="FR">
<author equipe="ORPAILLEUR">Florence Le Ber</author>
<author>Gérard Lizogat</author>
<titre>Représentation et raisonnement sur le temps et l'espace
-- Actes de l'atelier AFIA, Nice, 30 mai 2005</titre>
<publisher>Inconnu</publisher>
<year>2005</year>
</book>
</library>

Sinon, je ne sais pas ce qu'est un prologue xml...

Voilà, je te laisse faire tes propres essais...

Rm : j'utilise Cooktop qui me permet de visualiser avant et après interprétation html
0
Dalida Messages postés 7114 Statut Contributeur 923 > Eileen57 Messages postés 3 Statut Membre
 
salut,

je n'ai pas beaucoup de temps en ce moment et je le regrette vraiment. je viens de faire quelques essais avec ton code ce qui me permet de me plonger dans xml. je n'avais fait qu'entrevoir ses possibilités, là je suis soufflé ! c'est sûr, c'est mon prochain langage...

pour ton problème c'est un peu particulier. réussis-tu à faire ce que tu souhaites et veux-tu simplement trouver une meilleure méthode ? ou n'y arrives-tu pas, tout court ?

je ne réussi pas à faire fonctionner 'transalte()' mais je réussi à faire sortir les balises en code littérale.
ce que je pense comprendre c'est que tu souhaites traiter ton xml avec un xls qui devra sortir du... xml ! donc le navigateur va interpréter xls et ne pas afficher le xml avec la présentation par défaut. alors que tu souhaites l'afficher ainsi... c'est bien cela ?
moi j'ai essayé de le sortir en xml brut puis en html. j'ai essayé de le loger dans un <script> et deux ou trois autres bidouillages, rien de concluant...

en tout cas je me suis bien amusé et je suis décidé à prochainement pousser les investigations un peu plus loin. produire un xml par php à partir d'une bdd MySQL. le xls formate en html, mis en page en css... (j'ai l'impression de nager en plein délire...)

ps, le prologue xml c'est :
<?xml version="1.0" encoding="ISO-8859-1"?>

0
Eileen57 Messages postés 3 Statut Membre > Dalida Messages postés 7114 Statut Contributeur
 
Re Salut,

Je sais pas ce qui te botte dans le xml/xsl, moi je trouve ça pourri...
Je préfère encore de la vrai base de donnée et travailler avec php/mysql dans ce cas, enfin chacun son truc... Et puis, on s'amuse bien quand même...tant que c'est un "loisir"!

Sinon, j'arrives à faire ce que je veux c'est à dire afficher une partie de mon code xml via une xsl sous forme xml (balisage) dans une page html, c'est simplement que je suis plutôt perfectionniste et j'essaye toujours de minimiser le code quand c'est possible...

le translate marche très bien pour d'autres trucs, par exemple dans le select d'un value-of, si tu veux modifier un truc que tu récupère juste avant de l'afficher... Mais apparement, ça ne marche pas dans un copie-of...

Et le problème, c'est que le copie-of a un "comportement bizarre"...

En tout cas, merci d'avoir cherché à répondre et bonne continuation!
0
Gihef Messages postés 5165 Statut Contributeur 2 779
 
Bonjour,

S'il s'agit simplement d'afficher les < et >, pourquoi ne pas placer littéralement ce que tu récupères dans un <pre></pre> ?
Avec ça, plus de problème de transcription, non ?

-edit-
Oups, j'ai parlé trop vite )-;
0
Yoo
 
en jouant su les format d ecriture ca doit passé (utf8 ? tu crée un nouvo fichier tu enrgistre format utf8 et tu colle ton truc je croi ca passe )
0
grego
 
c'est tres simple en PHP:

<?php
$fichier=get_file_contents('http://tonsite.com/fichier.xml');
echo htmlentities($fichier);
?>
et HOP le resultat est magic ;)
-2