Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > XML и регистр тэгов |
Автор: HappyLife 19.1.2012, 16:30 |
Доброго времени суток уважаемые! Совсем недавно реализовал хороший парсер XML документа с помощью SimpleXML. Все однотипные XML файлы обрабатывались как часы. Но клиент, сказал, что у него есть такого же формата XML файлы, но с верхним регистром тэгов и аттрибутов. И я уже голову сломал, как мне сделать парсерсинг этого файла не делая второй парсер, потому что формат тот же... но регистр другой! |
Автор: newbee 19.1.2012, 16:51 |
Если я не ошибаюсь, по стандарту XML регистр имен тегов и атрибутов должен быть нижним, так что клиент подсунул тебе что-то похожее на XML. а) А почему нельзя изменить свой хороший парсер так, чтобы он съедал теги в верхнем регистре? б) Если в хорошем парсере все прибито гвоздями, сделай/найди препроцессор, который преобразует файл из верхнего регистра в нижний. |
Автор: HappyLife 19.1.2012, 19:53 | ||||
a) В коде есть
Который придется заменять на
б) Менять нужно не весь файл, а только тэги! 1) Как вариант, можно попробовать регулярными выражениеми сделать замену тегов.. или 2) Сделать проверку каждого элемента, если нет в нижнем регистре то искать в верхнем.... |
Автор: newbee 19.1.2012, 19:56 |
А я это и имела в виду - пройтись по xml-дереву и поправить его. А если тег в виде TagName? Правильно - приводить имя тега в верхний или нижний регистр, а там уже обрабатывать имена. |
Автор: Sanchezzz 20.1.2012, 06:56 | ||
я отказался от SimpleXML по 1 простой причине он не может парсить нестандартные xml и больших форматов у меня файл весил 50мб он загибался + некоторые атрибуты не выводил. перешел на XMLReader
|