使用 SimpleXML 反序列化 XML 和 HTML 转义部分

Deserialize XML with HTML-escaped part using SimpleXML

我有一个 XML 看起来像这样:

<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;
}

好的,我想我明白了

SimpleXML 将转义序列解析为 @Text,我可以在 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 会帮我完成。