Я пытаюсь записать данные XML с помощью Stax, где само содержимое является HTML
Если я попытаюсь
xtw.writeStartElement("contents");
xtw.writeCharacters("<b>here</b>");
xtw.writeEndElement();
Я понял
<contents><b>here</b></contents>
Затем я замечаю метод CDATA и изменяю свой код на:
xtw.writeStartElement("contents");
xtw.writeCData("<b>here</b>");
xtw.writeEndElement();
и на этот раз результат
<contents><![CDATA[<b>here</b>]]></contents>
что все еще не хорошо. Что я действительно хочу, так это
<contents><b>here</b></contents>
Так есть ли XML API / библиотека, которая позволяет мне писать необработанный текст, не находясь в разделе CDATA? До сих пор я смотрел на Stax и JDom, и, похоже, они этого не предлагают.
В конце я мог бы прибегнуть к старому доброму StringBuilder, но это было бы не элегантно.
Обновление:
Пока я согласен в основном с ответами. Однако вместо <b>here</b>
я мог бы иметь HTML-документ объемом 1 МБ, который я хотел бы встроить в больший XML-документ. То, что вы предлагаете, означает, что я должен проанализировать этот HTML-документ, чтобы понять его структуру. Я хотел бы избежать этого, если это возможно.
Ответ:
Это невозможно, иначе вы можете создать недействительные документы XML.