Проблема с русскими символами в SimpleXML

Oskaria

Новичок
Приветствую.
Пошарился по форуму, однако такой же проблемы найти не удалось. Возможно плохо искал))

Суть следующая - мне необходимо, по алгоритму, удалять некоторые ветки из XML файла, ну и я не долго думая решил делать так:

PHP:
$xml = simplexml_load_file("3.xml");

if (...) {
unset($xml->invoice->operator->name); // ну к примеру
}

$data = $xml->saveXML();
$file = fopen("3_.xml", "w+");
fwrite($file, $data); fclose($file);
Знаю, можно и $xml->saveXML("3_.xml"), но я точно не помню создается ли файл, если его нет.
Проблема возникает уже в переменной $data - киррилические символы преобразуются в html коды, т.е. например слово "Московский" превращается в МОСКОВСКИЙ. Ну как бы всё понятно, по-идее проводишь переменную через html_entity_decode() и всё. Но нет - коды никуда не исчезают.

Не было бы печали, если бы этот текст попадал куда-то дальше в PHP, но эти файлы должны скармливаться 1С, поэтому - косяк.

Прошу помощи у более опытных, в этом деле - как мне вернуть символам нормальный вид? Почему-то вариант с html_entity_decode не прокатывает, хотя вроде как это то, что надо.
 

Oskaria

Новичок
Забыл: проблемы нет, если получаю текст из ветки и вывожу или сохраняю его отдельно. Проблема только при сохранении всего документа.
 

Oskaria

Новичок
Чёрт, я дурак - не обратил внимания, что файлы генерируются без заголовка <?xml version="1.0" encoding="UTF-8"?>. Теперь читаю файл в строку, добавляю заголовок, скармливаю его simplexml_load_string() и работаю уже с ним.
Проблема решена))
 
Сверху