我正在使用Simplexml读取XML文件并输出具有不同名称的已翻译XML文件。谷歌翻译以UTF-8输出所有内容,为了正确查看扩展字符,我需要XML Prolog来包含编码信息:
include ':app' , ':volley'
有些文件没有编码信息,甚至根本没有prolog。 是否有通过PHP更改或添加XML文件中的prolog信息的特定方法? 谢谢。
答案 0 :(得分:1)
例如,请考虑以下具有不需要的XML声明格式的XML字符串。您可以使用DOMDocument
来获取没有声明的XML内容,如下所示:
$raw = '<?xml version="1.0"?><root/>';
$xml = new DOMDocument();
$xml->loadXML($raw);
$raw_without_prolog = $xml->saveXML($xml->documentElement);
从这一点开始,您可以简单地添加标准XML声明,以生成任何类型的所需XML(纯string
,DOMDocument
,SimpleXMLElement
,其中一个应该一样简单) :
.....
.....
$prolog = '<?xml version="1.0" encoding="UTF-8"?>';
$new_xml = new DOMDocument();
$new_xml->loadXML($prolog . $raw_without_prolog);
echo $new_xml->saveXML();
<强> eval.in demo
强>