Я работаю над проектом, в котором мне нужно проанализировать XML-файл, используя JAXB.Ниже приведен пример XML:
<FirstLevel>
<Second>
<Third>
<ProductName>Computer</ProductName>
</Third>
</Second>
<Second>
<Third>
<ProductName>Mobile</ProductName>
</Third>
</Second>
</FirstLevel>
Мне нужны только названия продуктов.Чтобы получить это, я попробовал следующее, но это не сработало:
@XmlRootElement(name="FirstLevel")
public class DTOClass {
private String productName;
public String getProductName() {
return productName;
}
@XmlElement(name="ProductName")
public void setProductName(String productName) {
this.productName = productName;
}
}
Но это работает:
@XmlRootElement(name="FirstLevel")
public class DTOClass {
private List<Second> second;
public List<Second> getSecond() {
return second;
}
@XmlElement(name="Second")
public void setSecond(List<Second> second) {
this.second = second;
}
static class Second{
private Third third;
public Third getThird() {
return third;
}
@XmlElement(name="Third")
public void setThird(Third third) {
this.third = third;
}
static class Third{
private String productName;
public String getProductName() {
return productName;
}
@XmlElement(name="ProductName")
public void setProductName(String productName) {
this.productName = productName;
}
}
}
}
Мои вопросы
Нужно ли создавать внутренние классы (или классы) для каждого уровня XML для анализа XML (как и второй)?
Возможно ли иметьтолько определенные поля в Java-классе, которые необходимы (например, первое)?