Code : Tout sélectionner
<?xml version="1.0" encoding="iso-8859-1"?>Code : Tout sélectionner
<?php
header("Content-Type: application/xhtml+xml; charset=ISO-8859-1");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" [
<!ENTITY test "This is a test">
]>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
</head>
<body>
<div>&test;</div>
</body>
</html><?php
echo('<?xml version="1.0" encoding="iso-8859-1"?>' . "\n");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<!ENTITY test "This is a test">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=ISO-8859-1" />
</head>
<body>
<div>&test;</div>
</body>
</html>
De mon coté, ça fonctionne tous navigateurs.En tout cas, lorsque l'on a dans DTD "<!ENTITY test "This is a test">", en mettant "&test;" dans le document XHTML on doit voir "This is a test", et rien d'autre. Tout autre truc indique que le DTD n'est pas pris en compte par le navigateur pour ce fichier (soit parce que le navigateur est pourri, soit parce que le fichier est mal écrit ou mal envoyé et est par exemple interprété comme HTML, et non comme XHTML).Petit détail : les balises "<!NOMDEBALISE>" ne sont ni du HTML ni du XML : c'est du SGML. Ce qui sera affiché dans ta page ne sera que ce qui est compris entre les balises <body> et </body>. Il est donc normal que tu ne voies pas ce qu'il y a dans ta balise <!ENTITY >.