【问题标题】:Getting encoding="UTF-8" standalone="yes" using PHP asXML and SimpleXMLElement [duplicate]使用 PHP asXML 和 SimpleXMLElement 获取 encoding="UTF-8" Standalone="yes" [重复]
【发布时间】:2013-04-29 11:21:22
【问题描述】:

当调用 php 页面时,我使用以下代码获取 XML 文件:

即当您输入http://example.com/strtoxmp.php 时,它将根据以下编码返回xml

  $xml = new SimpleXMLElement("<feed/>");

  $feed = $xml;
  $feed->addChild('resultLength', "1");
  $feed->addChild('endIndex', "1");

  $item = $feed->addChild('item',"");
  $item->addChild('contentId', "10031");
  $item->addChild('contentType', "Talk");
  $item->addChild('synopsis', "$newTitle" );
  $item->addChild('runtime', ' ');
}

Header('Content-type: text/xml;  charset:UTF-8; ');

print($xml->asXML());

它工作正常。它产生以下xml:

<?xml version="1.0"?>
<feed>
<resultLength>1</resultLength>
<endIndex>1</endIndex>
<contentId>10031</contentId>
<contentType>Talk</contentType>
<synopsis>Mark Harris - Find Your Wings</synopsis>
<runtime> </runtime>
</item>
</feed>

但我需要

而不是

【问题讨论】:

  • 谁说你需要那个?两者应该是等价的。
  • ROKU 不适用于 但它适用于
  • 什么是ROKU?流媒体播放器?

标签: php xml simplexml


【解决方案1】:

要设置 XML 声明,只需将其添加到您传递给 SimpleXMLElement 构造函数的字符串中:

$xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8" '
  . 'standalone="yes"?><feed/>');

这应该输出以下内容:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<feed/>

【讨论】:

  • 谢谢,我工作了。我对结果感到震惊。你能解释一下吗,它是怎么发生的。从技术上讲,我错过了什么。我尝试过&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;,但显示错误。
  • 在将字符串传递给构造函数时是否还添加了根元素?否则,您将不会拥有有效的 XML 文档...
  • 以防万一有人在寻找那个:如果您还想添加样式声明:在您的 &lt;feed/&gt; 对象之前添加类似 &lt;?xml-stylesheet type='text/xsl' href='my-xml-style.xsl' ?&gt; 的内容。 (或者你喜欢的css风格)
猜你喜欢
  • 2019-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-11
  • 1970-01-01
  • 2012-05-07
  • 2011-11-22
  • 2017-05-15
相关资源
最近更新 更多