У вас есть выдержка для нас?Это файл сгенерированный itunes?Если это так, для меня это звучит как ошибка в iTunes, из-за которой забыли правильно закодировать амперсанд.Я не удивлюсь: они явно не получили XML во-первых, их схема <name>[key]</name><string>[value]</string>
должна вызывать у изобретателей XML тошноту.
Возможно, вы захотите использовать другой, более надежный синтаксический анализатор.SAX великолепен, пока файл правильно сформирован.Однако я не знаю, насколько надежны dom4j и jdom.Просто дай им попробовать.Что касается python, я знаю, что рекомендую ElementTree
или BeautifulSoup
, которые очень надежны.
Также посмотрите на http://code.google.com/p/xmlwise/, который я нашел , упомянутый здесь в stackoverflow (Вы использовали поиск?).
Обновление : (согласно обновленному вопросу) Вам нужно , чтобы понять роль сущностей в XML и, следовательно, SAX.Они по умолчанию отдельные узлы, как текстовые узлы.Поэтому вам, вероятно, потребуется объединить их с соседними текстовыми узлами, чтобы получить полное значение.Используете ли вы DTD в вашем парсере?Использование правильного DTD - с определениями сущностей - может помочь в анализе, поскольку оно может содержать сопоставления от сущностей, таких как &
, с символами, которые они представляют &
, и синтаксический анализатор может выполнить объединение за вас.(По крайней мере, синтаксический анализатор Python XML-pull, который мне нравится использовать для больших файлов, работает при материализации поддеревьев.)