Bonjour
Après avoir trouvé pas mal de solutions sur le forum je me retrouve bloqué.
Mon but est d'afficher un flux xml ATOM.
Mon problème se situe au niveau de la balise <summary>. Je parviens a afficher son contenu mais le problème est qu'il contient des balises xhtml qui ne sont pas interprétées par le navigateur.
exemple de xml :
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 <?xml version="1.0" encoding="ISO-8859-1"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"> <title>Titre flux</title> <link rel="alternate" href="http://lien.fr" /> <subtitle>soustitre</subtitle> <id>id_flux</id> <updated>2007-01-17T08:13:27Z</updated> <dc:creator>ToNiO</dc:creator> <dc:date>2007-01-17T08:13:27Z</dc:date> <entry> <title>test url</title> <link rel="alternate" type="text/html" href="http://tonio.fr#comments" hreflang="http://tonio.fr#comments" /> <category term="comment" /> <author> <name>tonio</name> </author> <id>id_a_definir</id> <updated>2007-01-06T14:32:15Z</updated> <summary type="html"><p><a href="http://tonio.fr">blabla url</a> </p><p>&nbsp;</p><p><a href="http://tonio.fr" target="_blank">&nbsp;url2 </a><br /></p></summary> <dc:creator>tonio</dc:creator> </entry> </feed>
exemple xsl :
le resultat de la transformation étant intégré ds une page xhtml apres une requete ajax et un traitement javascript avec xsltProcessor.
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 <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://www.w3.org/1999/xhtml"> <xsl:output method="xml" media-type = "text/html" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/xhtml1-strict.dtd" version="1.0" encoding="iso-8859-1" omit-xml-declaration="yes" indent="yes" /> <xsl:template match="atom:feed"> <xsl:for-each select="atom:entry"> <ul> <li> <xsl:value-of select="atom:title" /> </li> <li> Auteur : <xsl:value-of select="atom:author/atom:name" /> </li> <li> Résumé : <xsl:value-of select="atom:summary" disable-output-escaping="yes" /> </li> </ul> </xsl:for-each> </xsl:template> </xsl:stylesheet>
J'obtiens en sortie :
Résumé : <p><a href="/tonio.fr">blabla url</a> </p><p> </p><p><a href="http://tonio.fr" target="_blank"> url2 </a><br /></p>
J'ai essayé de modifier pas mal de choses sans succès (method, media-type, doctype, disable-output-escaping, copy-of...)
Pour info si j'essaye d'afficher avec firefox (ou un agregateur RSS externe) mon xml sans appliquer le xsl, le contenu de <summary> est parfaitement récupéré et interprété. Comment font ils![]()
Merci d'avance
Partager