使用SimpleXmlConverter或任何其他库将自定义模型转换为XML字符串?

时间:2018-01-31 09:42:25

标签: java android xml retrofit2 simple-xml-converter

我正在使用Retrofit2和SimpleXmlConverter来调用API。请求和响应基于XML数据。我需要在请求体中发送带有标记的XML字符串。

通过使用SimpleXmlConverter,我可以轻松地将XML响应解析为我的自定义模型,但我无法将自定义模型转换为XML字符串,就像我们使用JsonConverters一样。

有没有办法将我的自定义模型转换为XML字符串?

1 个答案:

答案 0 :(得分:0)

通过使用SimpleXmlConverter库的Serializer类,您可以进行解析。请参阅以下代码:

这是自定义模型类

import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;

@Root(name = "notification", strict = false)
public class NotificationModel {

    @Element(name = "code")
    public String errorCode;

    @Element(name = "message")
    public String errorMessage;
}

这是您要解析到模型中的xml字符串

<notification xmlns:d="http://www.website.com/pref/data">
    <code>004</code>
    <message>Error during value update</message>
    <severity>info</severity>
    <target />
</notification>

使用以下代码解析上面的xml字符串

import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;

String xmlString = "above xml string"
try {
    Serializer serializer = new Persister();
    NotificationModel notificationModel = serializer.read(NotificationModel.class, xmlString);
    //TODO: Use notificationModel's variables with filled values
} catch (Exception e) {
    e.printStackTrace();
}