我有一种感觉我很厚,但这是我的问题:
我正在使用PHP创建动态XML树。这些树描述了员工层次结构,文件目录等。它们包含网页上的一小部分内容。网页的其余部分由各种其他来源(可能是基于SQL的,或静态文本或某些特殊的演示类)粘合在一起。当我输出我的树时,我将XML转换为嵌套的<ul>
。我想输出<ul>
没有任何doctype / header信息。 PHP的DomDocument和SimpleXML类似乎不允许这样做。将<ul>
存储在字符串中后,是唯一可以删除违规信息的选项吗?
答案 0 :(得分:2)
如果我放<xsl:output method="html" />
我不再输出自动DOCTYPE。问题解决了。
答案 1 :(得分:0)
本页末尾有关于此的评论: http://www.php.net/manual/en/libxml.constants.php
SimpleXML会自动添加标题。有一个选项可以在创建一个Simple XML对象时关闭它 - 它的LIBXML_NOXMLDECL但它不起作用 - 还有一个关于它的漏洞 - 请参阅上面页面底部的链接。
这就是我最后所做的:
$doc = new DOMDocument('1.0');
$root = $doc->createElement('items');
$root = $doc->appendChild($root);
$title = $doc->createElement('title');
$title = $root->appendChild($title);
$text = $doc->createTextNode($item->title);
$text = $title->appendChild($text);
$items[] = $doc->saveXML($root);
当然这不会给我一个SimpleXml对象,但至少它的xml并没有标题..