问题:如何避免多姆文档创建初始 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') );// Saveecho $doc->saveHTML();$doc->save("auto_produced_xhtml.xhtml");
1 回答
动漫人物
TA贡献1815条经验 获得超10个赞
您可以使用 而不是 ...另存为文件。取代saveHTMLFile();
save()
$doc->save("auto_produced_xhtml.xhtml");
跟
$doc->saveHTMLFile("auto_produced_xhtml.xhtml");
https://www.php.net/manual/en/domdocument.savehtmlfile.php
- 1 回答
- 0 关注
- 93 浏览
添加回答
举报
0/150
提交
取消