我正在尝试使用 SimpleXML 输出格式正确的 XHTML 文档。我这样做是这样的:
$pbDoc = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?>
<!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">
<head>
<title>'.$myTitle.'</title>
<!-- Other headers -->
</head>
</html>');
创建文档后,我想输出可读性很强的代码,所以我使用这样的 DOM 模块:
$dom = new DOMDocument();
$dom->loadXML($pbDoc->asXML());
$dom->formatOutput = true;
echo $dom->saveXML();
现在,有两件奇怪的事情困扰着我,我想知道这种行为是否正常以及如何禁用它,如果可能的话。
DOCTYPE 的存在导致
$pbDoc->asXML()
在开始标记之后添加一个不需要的元<head>
标记:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
为什么?
- 出于某种原因,DOM 模块根本不为我缩进代码(尽管它对不同的文档(即 XML,而不是 XHTML)做得很好)。
谁能告诉我我可能错在哪里以及如何摆脱这些烦恼?