Affichage des balises xml en html

Fermé
Eileen57 Messages postés 3 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 21 avril 2007 - 19 avril 2007 à 20:30
 grego - 8 sept. 2007 à 14:16
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 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
20 avril 2007 à 17:09
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 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 21 avril 2007
21 avril 2007 à 11:05
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 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920 > Eileen57 Messages postés 3 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 21 avril 2007
21 avril 2007 à 17:01
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 Date d'inscription jeudi 19 avril 2007 Statut Membre Dernière intervention 21 avril 2007 > Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
21 avril 2007 à 23:07
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 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023 2 775
22 avril 2007 à 00:52
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
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
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