![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем доброго времени суток!
Столкнулся с такой проблемой: Необходимо парсить xml файлы, которые содержат в значениях HTML текст. Соответственно внутри значений встречаются тэги, т.е. текст содержит символы < и >, которые воспринимаются как разметка самого xml . В итоге при активации XMLDocument вылетает ошибка. Повлиять на формирование исходных файлов (изначально заменять эти спец символы внутри значений) возможности нет. Как бороться с этой проблемкой может кто подскажет? Может есть какое-то стандартное решение? При том на PHP SimpleXML отрабатывает эти xml-ки без ошибок. Вот пример xml: Код:
|
#2
|
|||
|
|||
![]() ну, вообще-то, это нарушение спецификации xml. Т.е. это правильно, что TXMLDoc падает на парсинге такого xml. Можно попробовать парсить не через XMLDoc, а через HTMLDoc (это не компонент, надо создать соотв. объект "руками"). Вот пример из одного моего проекта:
Код:
|
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Llirik (09.02.2020)
|
#3
|
|||
|
|||
![]() Спасибо!
Я так и подумал, что придется самому расшифровывать... Проблематика в том, что имена разделов заранее не известны , а вложенность разделов достаточна большая . Но посмотрев внимательнее обнаружил, что такие глюки встречаются лишь в разделах с определенными именами. Я попробую предварительно тупо преобразовать исходный документ к корректной структуре, а именно, вручную найти все разделы с «опасными» именами и заменить внутри их недопустимые символы своими шифровками. А после обработки xml вернуть эти символы восвояси... |