输出没有标题的xml片段

时间:2009-07-30 14:15:19

标签: php xml doctype

我有一种感觉我很厚,但这是我的问题:

我正在使用PHP创建动态XML树。这些树描述了员工层次结构,文件目录等。它们包含网页上的一小部分内容。网页的其余部分由各种其他来源(可能是基于SQL的,或静态文本或某些特殊的演示类)粘合在一起。当我输出我的树时,我将XML转换为嵌套的<ul>。我想输出<ul>没有任何doctype / header信息。 PHP的DomDocument和SimpleXML类似乎不允许这样做。将<ul>存储在字符串中后,是唯一可以删除违规信息的选项吗?

2 个答案:

答案 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并没有标题..