Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中将XML映射到JAVA模型_Android_Xml - Fatal编程技术网

如何在android中将XML映射到JAVA模型

如何在android中将XML映射到JAVA模型,android,xml,Android,Xml,我正在开发一个android应用程序,我有一些来自HttpResponse的XML格式的数据。我想将这些数据映射到Java模型中。是否有任何通用的方法可以获取Java对象和XML数据,并将XML数据转换为Java模型。因为每次我得到不同web服务的XML时,我都需要编写解析代码 以下代码用于Java,是否有Android的代码 File file = new File("question.xml"); JAXBContext jaxbContext = JAXBContext.newInst

我正在开发一个android应用程序,我有一些来自HttpResponse的XML格式的数据。我想将这些数据映射到Java模型中。是否有任何通用的方法可以获取Java对象和XML数据,并将XML数据转换为Java模型。因为每次我得到不同web服务的XML时,我都需要编写解析代码

以下代码用于Java,是否有Android的代码

File file = new File("question.xml");  
JAXBContext jaxbContext = JAXBContext.newInstance(Question.class);  

Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();  
Question que= (Question) jaxbUnmarshaller.unmarshal(file);  

System.out.println(que.getId()+" "+que.getQuestionname());  
System.out.println("Answers:");  
List<Answer> list=que.getAnswers();  
for(Answer ans:list)  
   System.out.println(ans.getId()+" "+ans.getAnswername()+"  "+ans.getPostedby());  
File File=new文件(“question.xml”);
JAXBContext JAXBContext=JAXBContext.newInstance(Question.class);
解组器jaxbUnmarshaller=jaxbContext.createUnmarshaller();
Question que=(Question)jaxbUnmarshaller.unmarshal(文件);
System.out.println(que.getId()+“”+que.getQuestionname());
System.out.println(“答案:”);
List=que.getAnswers();
(答案:列表)
System.out.println(ans.getId()+“”+ans.getAnswername()+“”+ans.getPostedby());

您可以使用“”。

您可以使用JSON解析器而不是XML。用Java和Javascript编写代码很容易。

这是一个很好的教程,用于将
XML
映射到
POJO(普通旧Java对象)

请完成上述链接中提供的演示,您的问题将得到解决。
我希望这有帮助。

您可以使用XML反序列化。它有很好的文档记录,并且有一些例子可以供您参考

用法:

public static class SimpleModel {
  private String name;
  private String description;

  public String getName() { return name; }
  public String getDescription() { return description; }
}


public void simpleTest() {

  XmlParserCreator parserCreator = new XmlParserCreator() {
    @Override
    public XmlPullParser createParser() {
      try {
        return XmlPullParserFactory.newInstance().newPullParser();
      } catch (Exception e) {
        throw new RuntimeException(e);
      }
    }
  };

  GsonXml gsonXml = new GsonXmlBuilder()
     .setXmlParserCreator(parserCreator)
     .create();

  String xml = "<model><name>my name</name><description>my description</description></model>";
  SimpleModel model = gsonXml.fromXml(xml, SimpleModel.class);

  assertEquals("my name", model.getName());
  assertEquals("my description", model.getDescription());
}

但我在HttpResponse中有xml格式的数据。我没有使用jsone datatyr来使用JSON解析器…JSON解析器用于将JSON数据转换为java模型,但我有xml dataconvert xml to JSON数据…这应该是一个注释!我收到一个异常com.thoughtworks.xstream.mapper.CannotResolveClassException请共享您的代码和错误日志,以便e能够帮助您解决它。
<person dob="01.01.1973" gender="male">
  <name>John</name>
  Likes traveling.
  </person>
public class Person {

  @SerializedName("@dob")
  private String dob;

  @SerializedName("@gender")
  private String gender;

  private String name;

  @SerializedName("$")
  private String description;

  // ...
}