Добавление кодировки в XML-файл для SimpleXml? - PullRequest
0 голосов
/ 21 августа 2011

У меня есть внешний XML-файл, который я должен забрать, кодировка не установлена, но я обнаружил, что его полезная нагрузка кодируется ISO-8859-1.

Я знаю это, потому что если я вручную отредактирую файл в кодировку = "ISO-8859-1", то он будет обработан, как и ожидалось.

Могу ли я сообщить simplexml, с какой кодировкой следует иметь дело при создании экземпляра объекта simplexml?

Добавление

Поскольку xml-файл был настолько грязным, я мог бы в конечном итоге использовать xmllint - опубликовать здесь для всех, кто интересуется - форматировать его с отступом, установить кодировку там, где его не было, и очистить плохие объекты (и т. Д.) *

xmllint --format --encode iso-8859-1 -o cleansed.xml dirty.xml

1 Ответ

2 голосов
/ 22 августа 2011

Вы можете установить кодировку для DomDocument , а затем преобразовать его в simplexml с помощью simplexml_import_dom () :

$dom = new DomDocument('1.0', 'iso-8559-1');
$dom->load('externalfile.xml');

if (!$dom) {
    echo 'Parsing error';
    exit;
}

$s = simplexml_import_dom($dom);
...