DOMDocument 避免初始 xml 标记

DOMDocument avoid initial xml tag

问题:

如何避免 DOMDocument 创建初始 xml 标签?:

<?xml version="1.0"?>

求购代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  <head>
    <title>My site</title>
  </head>
  <body>
  </body>
</html>

使用 DOMDocument 生成的代码:

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>My site</title>
  </head>
  <body></body>
</html>

我的脚本:

<?php

/**
 * Ref:
 * 
 * https://www.php.net/manual/en/domimplementation.createdocumenttype.php
 */

// Creates an instance of the DOMImplementation class
$imp = new DOMImplementation;

 // Doctype
 $dtd = $imp->createDocumentType(
   'html', '-//W3C//DTD XHTML 1.0 Transitional//EN', 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'
 );

// Base document
$doc = $imp->createDocument("", "", $dtd);
$doc->formatOutput = true;


/**
 * Construct tag skeleton.
 */

// [L-1]
$html=$doc->appendChild(
  $doc->createElementNS("http://www.w3.org/1999/xhtml","html")
);

$html->setAttribute("lang", "en");
$html->setAttribute("xml:lang", "en");
$doc->appendChild($html);


    // [L-2]
    $head=$html->appendChild(
      $doc->createElement('head')
    );

        // [L-3]
        $title=$head->appendChild(
          $doc->createElement(
            'title',
            "My site"
          )
        );

    // [L-2]
    $body=$html->appendChild(
      $doc->createElement('body')
    );

// Save
echo $doc->saveHTML();
$doc->save("auto_produced_xhtml.xhtml");

您可以使用 saveHTMLFile(); 而不是 save() 来...另存为 HTML 文件。替换

$doc->save("auto_produced_xhtml.xhtml");

$doc->saveHTMLFile("auto_produced_xhtml.xhtml");

https://www.php.net/manual/en/domdocument.savehtmlfile.php