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

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

有帮助吗?

解决方案

如果我放<xsl:output method="html" />我不再输出自动DOCTYPE。问题解决了。

其他提示

本页末尾有关于此的评论: http://www.php.net/manual/en/libxml.constants.php

SimpleXML会自动添加标题。有一个选项可以在创建一个简单的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并没有标题..

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top