To prevent asXML from encoding vowels unwantedly, simply use an approriate XML header with encoding in advance.If you do so, asXML will happily leave your vowels (and the header) entirely untouched.<?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 and $output are identical now.The subsequent use of html_entity_decode() (as proposed in the very beginning in another post) has several drawbacks:1. It is slow2. It is expensive3. If there are already encoded arrow brackets or double quotes in your source for instance (as shown in the above example), markup will be broken.