LINUX.ORG.RU
ФорумTalks

xml - sucks

 


0

2

Додумался же кто-то, что надо внутри элементов удалять ведущие и хвостовые пробелы и сдвоенные внутри, но это еще ладно, но кто же такой упоротый попался, что заботливо еще и все пробельные символы кроме 0x20h тоже удаляет? Отсюда например, https://en.wikipedia.org/wiki/Whitespace_character

Чтобы враг значится не прошел и не навтыкал пробелов, где не положено. А то, что атрибут xml:space=«preserve» опциональный и не всеми парсерами поддерживается - это фигня.

Уууууууууу!!!!

★★★★★

Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от Deathstalker

Вот только мне нужно что-то придумать с текущей системой. Я в ярости! Я решил что кое-что простое подработаю за часик вечерком, а теперь на ровном месте, где не предвидел никаких сложностей, уткнулся в этот XML.

praseodim ★★★★★
() автор топика
Ответ на: комментарий от Deleted

<![CDATA[ ]]>

Не помогает. Пробел все-равно был выявлен и изничтожен.

Эскейпинг тоже. Там всего-то пять символов экранируются. Ну и разумеется фокус с кодом 32; тоже мимо.

Продвинутый какой парсер. Лучше бы атрибут xml:space понимал.

praseodim ★★★★★
() автор топика
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от Deleted

Я даже не знаю, что за парсер, просто для удаленной системы надо было простую тулзу сделать, которая конвертит данные в xml для нее. Там ничего сложного не было и я быстро все сделал, но уткнулся в этот момент.

Так как данные далее просто показываются (или печатаются) в форме на экране, то устроила бы даже замена 0x20h на что-то другое. Но как нарочно!!11

praseodim ★★★★★
() автор топика
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от Deathstalker

Обещал человеку «фигня вопрос, в четверг утром будет». Вопрос и в самом деле фигня, но вот такая засада на ровном месте. $-|

praseodim ★★★★★
() автор топика
Ответ на: комментарий от praseodim

для удаленной системы

а так там может быть даже не хмль виноват а колдунство в сорцах

ps. что бывает под видом xml Открытые протоколы на гос службе, или отчего я нелюблю XML.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Да, впечатляет. А мне наверное придется завтра с утра конкретнее разбираться, что на удаленной системе деется. Может удастся оторвать лишний интеллект.

praseodim ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Ооо!!! Только что выяснил, что эта падла еще и рисунки может использовать. Кажется получается текст сдвигать вставкой белого изображения. Вот так и получается говнокод =)

Все-таки интересно, что еще в xml возможно есть полуштатного для сохранения пробелов.

praseodim ★★★★★
() автор топика

Ещё один прозрел, поздравляю.

beastie ★★★★★
()

надо внутри элементов удалять ведущие и хвостовые пробелы и сдвоенные внутри

Это самодеятельность приложения, XML тут не при чём.

i-rinat ★★★★★
()

Напишуть самопальных XML-парсеров и страдают..

r_asian ★☆☆
()

Если парсер не наколенно-косой, то уже упомянутая «<![CDATA[...]]>» гарантировано сохранить пробелы, ибо парсер внутри неё в любом случае не должен шарить вообще никак.

sanwashere ★★
()

удалять ведущие и хвостовые пробелы

Потому, что инструмент нужно применять по назначению. XML придумывался данные в книгах и т.п. помечать.

DonkeyHot ★★★★★
()
Ответ на: комментарий от IPR

json - наше всё.

+1

Достаточно гибкий и в то же время компактный и лаконичный формат.

totik
()
<Сильная>
   <Ненависть>
     <К>Избыточность</К>
   </Ненависть>
</Сильная>

Deleted
()
Ответ на: комментарий от i-rinat

Это самодеятельность приложения, XML тут не при чём.

Вот хз, мне как-то недосуг было выяснять что там за парсер, система не моя.

Но я вот что думаю: для «наколенного» парсера или приложения слишком много работы кто-то проделал, чтобы учесть все символы Unicode, которые отображаются как пробелы. Чтобы позаботиться CDATA интерпретировать и обнаружить там пробел. Значит это попалась какая-то более-менее стандартная библиотека с неестественным интеллектом.

praseodim ★★★★★
() автор топика
Ответ на: комментарий от praseodim

учесть все символы Unicode, которые отображаются как пробелы

Если это Java, то там есть isWhitespace, который понимает Unicode. Есть ещё normalizeSpace, который удаляет внутренние дублирующиеся пробелы. И это я просто нагуглил за пару минут. На оформление этого сообщения больше ушло.

i-rinat ★★★★★
()
Ответ на: комментарий от praseodim

Вот хз, мне как-то недосуг было выяснять что там за парсер, система не моя.

не пробовал банальный &nbsp; ей скормить, по описанию поведение сильно смахивает на html и его имитиации

ps. парсер лора кстати тоже упорот

Deleted
()
Последнее исправление: Deleted (всего исправлений: 5)

используй json, люк

Siado ★★★★★
()
Ответ на: комментарий от praseodim

Учи историю:

Generalized Markup Language (GML) is a set of macros that implement intent-based (procedural) markup tags for the IBM text formatter, SCRIPT. SCRIPT/VS is the main component of IBM's Document Composition Facility

SGML descended from IBM's Generalized Markup Language (GML), ... was originally designed to enable the sharing of machine-readable large-project documents in government, law, and industry

XML is an application profile of SGML

DonkeyHot ★★★★★
()
Ответ на: комментарий от Deleted

Пробовал скормить, распознает как пробел и удаляет.

praseodim ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.