Hallo,
Dein Code, den Du hier gepostet hast, funktioniert 1:1 bei mir. Ich habe lediglich die Header()-Aufrufe entfernt, weil ich auf der Kommandozeile arbeite, aber wenn ich Dein PHP-Script ansonsten unverändert aufrufe, erhalte ich als Ausgabe:
----------- schnipp ----------------
bbb
<?xml version="1.0" encoding="UTF-8"?>
<xml><locale lang="de"><str xml:id="myID1">aaa</str><str xml:id="myID2">bbb</str></locale></xml>
----------- schnapp ----------------
Und ja, da steht $xml->getElementById, nicht $lf->getElementById.
Welche PHP-Version hast Du? Ich habe:
PHP 5.2.6RC1-pl1-gentoo with Suhosin-Patch 0.9.6.2 (cli) (built: Mar 22 2008 17:21:59)
Außerdem verwendet mein PHP (siehe phpinfo) die libxml-Version 2.6.30.
Ich würde stark vermuten, dass das ein Bug in der libxml2 ist, der inzwischen korrigiert wurde. Das ganz sieht stark nach dem Bug #314358 aus, der in 2.6.21 korrigiert wurde - meine Vermutung ist, dass Deine Version geringer ist.
Viele Grüße,
Christian