多姆文档避免初始 xml 标记

问题:


如何避免多姆文档创建初始 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" xml:lang="en">

  <head>

    <title>My site</title>

  </head>

  <body>

  </body>

</html>

使用 DOM 文档生成的代码:


<?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" 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://stackoverflow.com/questions/19482826/using-domdocument-to-create-elements-in-an-html-file

 * 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");


慕虎7371278
浏览 97回答 1
1回答

动漫人物

您可以使用 而不是 ...另存为文件。取代saveHTMLFile();save()$doc->save("auto_produced_xhtml.xhtml");跟$doc->saveHTMLFile("auto_produced_xhtml.xhtml");https://www.php.net/manual/en/domdocument.savehtmlfile.php
打开App,查看更多内容
随时随地看视频慕课网APP