为了防止 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. 如果您的源代码中已经存在编码的箭头括号或双引号(如上面的示例所示),则标记将被破坏。