使用PHP asXML和SimpleXMLElement获取encoding ="UTF-8"standalone ="yes"

SJS*_*oft 7 php xml simplexml

我在调用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());
Run Code Online (Sandbox Code Playgroud)

它工作正常.它产生以下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>
Run Code Online (Sandbox Code Playgroud)

但是我需要

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

代替

<?xml version ="1.0"?>

Ben*_*Ben 24

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

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

这应输出以下内容:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<feed/>
Run Code Online (Sandbox Code Playgroud)