Как я могу отключить ненужный выход в XStream?

XStream по умолчанию излишне выходит >," ... и т.д.

Есть ли способ отключить это (и только выйти <, &)?

7
задан skaffman 23 May 2010 в 10:25
поделиться

2 ответа

Это результат работы PrettyPrintWriter по умолчанию. Лично мне нравится избегать обоих <и>. Это делает вывод более сбалансированным.

Если вам нужен канонический XML-вывод, вам следует использовать C14N API, предоставляемый в Java.

Если потоковый контент включает XML, CDATA - лучший вариант. Вот как я это сделал:

XStream xstream = new XStream(
           new DomDriver() {
               public HierarchicalStreamWriter createWriter(Writer out) {
                   return new MyWriter(out);}});
String xml = xstream.toXML(myObj);

    ......

public class MyWriter extends PrettyPrintWriter {
    public MyWriter(Writer writer) {
        super(writer);
    }

    protected void writeText(QuickWriter writer, String text) { 
        if (text.indexOf('<') < 0) {
            writer.write(text);
        }
        else { 
            writer.write("<[CDATA["); writer.write(text); writer.write("]]>"); 
        }
    }
}
7
ответ дан 7 December 2019 в 05:18
поделиться

XStream не пишет XML сам по себе, он использует для этого различные библиотеки («драйверы»?).

Просто выберите тот, которого нет. Список есть на их сайте. Думаю, по умолчанию он будет использовать XOM.

0
ответ дан 7 December 2019 в 05:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: