You are here: Unexpected behavior when creating xhtml documents « PHP Programming Language « IT news, forums, messages
Unexpected behavior when creating xhtml documents

Posted by Marijn on 06/06/07 23:23

Hey everybody,

The following has been posted before (2 years ago) but no response was
added. Therefor again, the following code for creating xhtml file:

<?php

error_reporting(6143);

$xmlns = "http://www.w3.org/1999/xhtml";
$lang = "en";

$xhtml_1_strict = new DomImplementation();

$dtd_xhtml_1_strict = $xhtml_1_strict->createDocumentType("html", "-//
W3C//DTD XHTML 1.0 Strict//EN", "http://www.w3.org/TR/xhtml1/DTD/
xhtml1-strict.dtd");

$xhtml_1_strict_document = $xhtml_1_strict->createDocument("", "",
$dtd_xhtml_1_strict);
$xhtml_1_strict_document->encoding = "UTF-8";
$xhtml_1_strict_document->standalone = "no";

$html = $xhtml_1_strict_document->createElementNS($xmlns, "html");
$html->setAttribute("xml:lang", $lang);

$head = $xhtml_1_strict_document->createElement("head");
$html->appendChild($head);

$title = $xhtml_1_strict_document->createElement("title", "Testing the
DOM in PHP5");
$head->appendChild($title);

$base = $xhtml_1_strict_document->createElement("base");
$base->setAttribute("href", "http://test.beatter.com");
$head->appendChild($base);

$meta = $xhtml_1_strict_document->createElement("meta");
$meta->setAttribute("http-equiv", "Content-Type");
$meta->setAttribute("content", "application/xhtml+xml;UTF-8");
$head->appendChild($meta);

$body = $xhtml_1_strict_document->createElement("body");
$html->appendChild($body);

$xhtml_1_strict_document->appendChild($html);

header("Content-type: application/xhtml+xml;UTF-8");
echo($xhtml_1_strict_document->saveXML());

?>

the expected output would be:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://
www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Testing the DOM in PHP5</title><base href="http://
test.beatter.com" />
<meta http-equiv="Content-Type" content="application/xhtml
+xml;UTF-8" />
</head>
<body>
</body>
</html>

but the output is:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://
www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8" />
<title>Testing the DOM in PHP5</title><base href="http://
test.beatter.com" />
</head>
<body>
</body>
</html>

Why does php add this node by itself? Why can't I override that
behavior? Why does php change the order of outputing the elements (I'm
appending, not pre-pending to the head element)?

Thanks,

Marijn

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация