Edit report at http://bugs.php.net/bug.php?id=53050&edit=1

 ID:                 53050
 Updated by:         [email protected]
 Reported by:        jameswithers89 at gmail dot com
 Summary:            processing instructions won't append correctly
-Status:             Open
+Status:             Bogus
 Type:               Bug
 Package:            DOM XML related
 Operating System:   Linux
 PHP Version:        5.2.14
 Block user comment: N

 New Comment:

This works fine; you just have to call insertBefore with the right
reference node. In this case, replacing:



        $Document->documentElement->insertBefore($IeXhtml);



with:



        $Document->insertBefore($IeXhtml, $Document->doctype);



will take care of that.



Not a bug -> closing.


Previous Comments:
------------------------------------------------------------------------
[2010-10-13 02:25:10] jameswithers89 at gmail dot com

Description:
------------
In order to make my XHTML compatible with Internet Explorer it is
recommended (http://www.w3.org/MarkUp/2004/xhtml-faq#ie) to have
<?xml-stylesheet type="text/xsl" href="copy.xsl"?> as a processing
instruction. However, trying to append this does not work as expected.



Test script:
---------------
        $Implementation = new DOMImplementation();

        $Doctype = $Implementation->createDocumentType("html");

        $Document =
$Implementation->createDocument("http://www.w3.org/1999/xhtml";, "html",
$Doctype);

        // Workaround for IE XHTML issues:
http://www.w3.org/MarkUp/2004/xhtml-faq#ie

        $IeXhtml = $Document->createProcessingInstruction("xml-stylesheet",
"type=\"text/xsl\" href=\"copy.xsl\"");

        $Document->documentElement->insertBefore($IeXhtml);

        $Head = $Document->createElement("head");

        $Title = $Document->createElement("title", "My page");

        $Head->appendChild($Title);

        $Document->documentElement->appendChild($Head);

        $Body = $Document->createElement("body");

        $Script = $Document->createElement("script", "");

        $Script->setAttribute("src", "test.js"); 

        $Script->setAttribute("type", "text/javascript");

        $Body->appendChild($Script);

        $Document->documentElement->appendChild($Body);

        echo $Document->saveXML();

Expected result:
----------------
<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="copy.xsl"?>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml";>

<head>

<title>My page</title>

</head>

<body>

<script src=test.js" type="text/javascript"></script>

</body>

</html>



Actual result:
--------------
<?xml version="1.0"?>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml";>

<?xml-stylesheet type="text/xsl" href="copy.xsl"?>

<head>

<title>My page</title>

</head>

<body>

<script src=test.js" type="text/javascript"></script>

</body>

</html>


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=53050&edit=1

Reply via email to