Разбор отдельных полей из XML с использованием JAXB - PullRequest
0 голосов
/ 22 ноября 2018

Я работаю над проектом, в котором мне нужно проанализировать 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-классе, которые необходимы (например, первое)?

...