為了防止 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. 例如,如果您的來源中已經存在編碼的角括號或雙引號(如上例所示),標記將會損壞。