由于代码和描述中的错误而更新
我对XML还很陌生,但在使用内置函数创建XML文件时,我还是很熟悉的。
我可以像这样创建文件...
$xml['doc'] = new DOMDocument('1.0', 'utf-8');以此类推,其输出如下所示。
<?xml version="1.0" encoding="utf-8"?>
<adf>
elements...
</adf>我需要的是..。
<?xml version="1.0" encoding="utf-8"?>
<?adf version="1.0"?>
<adf>
elements...
</adf>寻找添加的正确方法?它不需要结束标记。我遵循所需的特定格式。具体来说,这里记录的ADF 1.0 ...http://en.wikipedia.org/wiki/Auto-lead_Data_Format
发布于 2013-04-02 02:01:43
<?target content?>构造称为XML processing instruction。
<?xml ?>是一个特例:它必须是文档中的第一个内容。您的<?adf version="1.0" ?><?xml version="1.0"?>示例不是格式良好的XML。然而,<?xml version="1.0"?><?adf version="1.0" ?>是很好的。
您可以使用createProcessingInstruction轻松创建处理指令
$doc = new DOMDocument('1.0', 'utf-8');
$pi = $doc->createProcessingInstruction('adf', 'version="1.0"');
$doc->appendChild($pi);
// you still need a root element to be well-formed
$doc->appendChild($doc->createElement('adf'));
echo $doc->saveXML();此代码将打印以下内容:
<?xml version="1.0" encoding="utf-8"?>
<?adf version="1.0"?>
<adf/>注意,处理指令的内容不是由xml处理器解析的--它只是文本,就像注释一样。如果在它们内部使用类似xml的属性语法,则必须自己解析它。
在绝大多数情况下,使用真实的元素和属性比使用自定义处理指令更好。(ADF需要处理指令,所以在这种情况下当然应该使用处理指令。)
发布于 2013-04-02 01:45:59
您想要的输出将不是有效的XML,因为在<?xml ... ?>声明之前不允许任何内容。您的自定义内容需要是正常XML流的一部分。
https://stackoverflow.com/questions/15748489
复制相似问题