为了防止 asXML 无意中对元音进行编码,只需提前使用具有适当编码的 XML 头即可。
如果您这样做,asXML 将愉快地完全保留您的元音(以及头)。
<?php
$xmlstr =
'<?xml version="1.0" encoding="UTF-8"?>
<keys>
<key lang="en"><Insert></key>
<key lang="de"><Einfügen></key>
</keys>';
$sxe = new SimpleXMLElement($xmlstr);
$output = $sxe->asXML();
?>
$xmlstr 和 $output 现在相同。
随后使用 html_entity_decode()(如在另一篇文章开头建议的那样)有几个缺点
1. 速度慢
2. 占用资源多
3. 例如,如果您的源代码中已经存在编码的尖括号或双引号(如上述示例所示),则标记将被破坏。