php输出xml格式编码

by Web全栈工程师 on 2012 年 06 月 12 日

SimpleXML作为PHP核心的组成部分,可以把XML转换为对象,但是有时候,我需要对输出的xml格式设置编码;
代码:

$XML = new SimpleXMLElement("<foo />");
echo($XML->asXML());

输出结果:

<?xml version="1.0"?>
<foo/>

如果想输出:

<?xml version="1.0" encoding="UTF-8"?>
<foo/>

可以使用以下几个方法,实现XML格式编码:

方法一、用addAttribute()函数给 SimpleXML 元素添加一个属性

$xml->addAttribute('encoding', 'UTF-8');

方法二、使用简单的替换

$outputXML=str_replace('<?xml version="1.0"?>', '<?xml version="1.0" encoding="UTF-8"?>', $outputXML);

方法三、使用正规则替换

$outputXML=preg_replace('/<\?\s*xml([^\s]*)\?>/' '<?xml $1 encoding="UTF-8"?>', $outputXML);

方法四、设置DomDocument对象编码

$xml=dom_import_simplexml($simpleXML);
$xml->xmlEndoding='UTF-8';
$outputXML=$xml->saveXML();

参考资料:
http://www.w3school.com.cn/php/php_ref_simplexml.asp

原创文章,转载请注明:转载自Web开发笔记 | php输出xml格式编码

本文链接地址:https://www.magentonotes.com/php-output-xml-encode.html

Comments on this entry are closed.

Previous post:

Next post: