Как правильно встраивать потенциально не правильно сформированный HTML в документ XML? - PullRequest
3 голосов
/ 29 декабря 2008

Специалисты по маркетингу хотят иметь возможность писать прямой встроенный HTML в CMS (на основе xml). Соответствие требованиям xhtml и т. п. потенциально истощает, но они боссы. CMS использует обычный конвейер преобразования xml / xslt. В настоящее время мы просто используем один узел с узлом cdata, содержащим всю мерзость, созданный с использованием некоторых неприятных конкатенаций.

Есть ли другие способы сделать это?

Редактировать: Возможно, я смогу убедить их, что HTML должен быть правильно сформированным фрагментом HTML какого-либо рода, но я не могу в известной вселенной заставить их согласиться с соблюдением xhtml / строгого соответствия, например остальные вещи на самом деле это . Но из того, что я понимаю, хорошо сформированный просто мне ничего не помогает?

Ответы [ 4 ]

4 голосов
/ 29 декабря 2008

CDATA - это только способ сделать это, просто нет способа, которым недопустимая разметка попадет в документ XML в любой разобранной структуре.

Могу ли я предложить альтернативное решение, хотя? Исправьте разметку проблемы, когда она вставлена ​​в XML - определенно нетривиально, но, честно говоря, задача, которую они вам дают, абсурдна.

Проверьте HTML Tidy или Beautiful Soup , который может взять тег-суп и превратить его в действительный, хорошо сформированный xhml.

2 голосов
/ 29 декабря 2008

Одним из решений, помимо использования секций CDATA, было бы закодировать все менее чем и амперсанды, которые пишут маркетологи, и декодировать их перед отображением.

Однако я думаю, что решение, включающее что-то вроде HTML Tidy, вероятно, было бы оптимальным.

1 голос
/ 29 декабря 2008

Я вполне уверен, что вы можете отфильтровать HTML, который вводят маркетологи, через XHTML-конвертер.

Например, SgmlReader .

0 голосов
/ 01 января 2009

Вы можете встроить всю их мерзость, используя секции CDATA или явно экранируя соответствующие символы (эти две опции фактически эквивалентны). Как уже было отмечено, есть некоторые инструменты, такие как Tidy, которые могут помочь, и, конечно, как только вы получите правильно сформированный документ, вы можете преобразовать его с помощью XSLT в нечто менее неприятное (в зависимости, конечно, от CMS ты используешь).

Сказав все это, я бы сказал, что сейчас самое время обсудить, кто является "боссом" в каких областях. Маркетологи не воспримут это слишком хорошо, если вы начнете отвергать их в обсуждениях брендинга или чего-то еще. У вас есть область знаний, и у них есть свои, и они определенно не являются HTML. Боритесь с этим боем сейчас, или вы столкнетесь с миром боли в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...