Реализовал два решения одно через replaceAll, второе через DOM.
В условии задачи написано "Сериализация obj в xml может содержать CDATA с искомым тегом. Перед ним вставлять комментарий не нужно."(выделение жирным моё).
В итоге при решении через replaceAll в блоке CDATA выше обозначенное условие не выполняется и перед тегом внутри CDATA вставляется комментарий. При решении через DOM условие задачи выполняется и блок CDATA остается нетронутым.
Валидатор принял решение через replaceAll. какого черта?
Victor T.
51 уровень
Условие задачи написано неверно или неверно настроена валидация.
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Victor T.1C Developer в Customer
17 апреля 2021, 20:09
Вот функция которая делает всю работу
String source - результат сериализации объекта, остальное понятно.
Посмотрел решение от JR. Тот объект, что идет в решении от JR после сериализации проходит процедуру замены мнемоник на "спец символы". Т.е. если такую подмену не проводить то c точки зрения replaceAll в блоке CDATA никогда не будет "тегов". И решение действительно валидно.
Очевидно моя ошибка в том что я не сериализовал объект, а взял строку XML из условия задачи для анализа и в CDATA прописал открытие тега . Вот функция возвращающая строку XML из примера с тегом "second" в блоке CDATA, но при сериализации объекта в XML видимо такую строку получить невозможно.
И для вставки коммента использовал вызов:
В результате конечно же получал вставку коммента в CDATA.
0
Roman Java Developer Expert
15 апреля 2021, 06:12
Выложи сюда "неправильно принятое" решение, посмотрим.
0