@power_ranger

JAVA..JAXB. Проблема с анмаршелингом дочерних тегов. Как исправить?

Я недавно изучаю JAXB, необходимо вывести содержимое тегов Code И Text с помощью анмаршалинга. У меня не получается, т.к. при выводе одни нули 615c0e791658b045954684.png

<?xml version="1.0" encoding="windows-1251"?>
<product>
    <preply>
        <err>
            <ctErr>
                <Code>004</Code>
                <Text>Error</Text>
            </ctErr>
        </err>
    </preply>
</product>

Вот мой класс Product:

@XmlRootElement
public class Product {
    private int Code;
    private String Text;

    public int getCode() {
        return Code;
    }
    @XmlElement(name="Code")
    public void setCode(int code) {
        Code = code;
    }

    public String getText() {
        return Text;
    }
    @XmlElement(name = "Text")
    public void setText(String text) {
        Text = text;
    }


И код вызывающего класса:
public class Main {

    public static void main(String[] args) throws JAXBException {

        try{
            File file = new File("error.xml");
            JAXBContext context = JAXBContext.newInstance(Product.class);
            Unmarshaller unmarshaller = context.createUnmarshaller();
            Product error = (Product) unmarshaller.unmarshal(file);
            System.out.println(error.getCode());
            System.out.println(error.getText());
        } catch (JAXBException e) {
            e.printStackTrace();
        }
    }
}
  • Вопрос задан
  • 152 просмотра
Пригласить эксперта
Ответы на вопрос 1
xez
@xez Куратор тега Java
TL Junior Roo
Модель, очевидо, не правильная.
Должно быть как-то так:
public class Product {
   Preply  preply;
}

public class Preply {
   Err err;
}

public class Err {
   CtErr ctErr;
}

public class CtErr {
  int Code;
  String Text;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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