0

У меня есть XML, который выглядит примерно так:Deserialize XML с HTML-спасся части с помощью SimpleXML

<xml> 
&lt;example&gt;&lt;string&gt;test&lt;/string&gt;&lt;/example&gt; 
</xml> 

Можно ли сделать SimpleXML восстановить эти HTML-экранированные символы во время десериализации и продолжают, как обычно, раздувая эти классы:

@Root 
public class Xml { 

    @Element 
    public Example example; 
} 

public class Example { 

    @Element 
    public String string; 
} 

ответ

0

Ладно, я думаю, что я получил его

SimpleXML разбирает спасся последовательность как @Text, что я могу у se в constructor injection, и в этом конструкторе я создаю еще один экземпляр Persister, который читает эту последовательность. Вот код для примера на вопросе:

@Root 
public class Xml { 
    @Text 
    String text; 

    public Example example; 

    public Xml(@Text String text) { 
     Serializer serializer = new Persister(); 
     try { 
      example = serializer.read(Example.class, text); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

public class Example { 

    @Element 
    public String string; 
} 

Что интересно, что мне не нужно, чтобы восстановить экранированные символы, SimpleXML делает это для меня.

Смежные вопросы