首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在PHP中设置此XML的正确方法

在PHP中设置此XML的正确方法
EN

Stack Overflow用户
提问于 2013-04-02 01:42:28
回答 2查看 108关注 0票数 0

由于代码和描述中的错误而更新

我对XML还很陌生,但在使用内置函数创建XML文件时,我还是很熟悉的。

我可以像这样创建文件...

代码语言:javascript
复制
$xml['doc'] =       new DOMDocument('1.0', 'utf-8');

以此类推,其输出如下所示。

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<adf>
elements...
</adf>

我需要的是..。

代码语言:javascript
复制
<?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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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轻松创建处理指令

代码语言:javascript
复制
$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();

此代码将打印以下内容:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<?adf version="1.0"?>
<adf/>

注意,处理指令的内容不是由xml处理器解析的--它只是文本,就像注释一样。如果在它们内部使用类似xml的属性语法,则必须自己解析它。

在绝大多数情况下,使用真实的元素和属性比使用自定义处理指令更好。(ADF需要处理指令,所以在这种情况下当然应该使用处理指令。)

票数 3
EN

Stack Overflow用户

发布于 2013-04-02 01:45:59

您想要的输出将不是有效的XML,因为在<?xml ... ?>声明之前不允许任何内容。您的自定义内容需要是正常XML流的一部分。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15748489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档