Сохраняет ли метод org.dom4j.io.SAXReader.read(Reader reader) порядок элементов и атрибутов XML

Мой XML-файл:

<XYZ>
    <A name="one">
        <label>I am A one</label>
    </A>
    <B name="two">
        <label>I am B two</label>
    </B>
    <A name="three">
        <label>I am A three</label>
    </A>
</XYZ>

Мой код:

String myXmlAsString = //Read the above xml as String
Document document = new SAXReader().read(new StringReader(myXmlAsString ));
List<Element> dataElements = document.selectNodes("/XYZ");

Мой вопрос:

Если я читаю свой XML-файл через вышеупомянутый код, тогда dataElements Список возвращен selectNodes(String xPathExpr) метод будет иметь тот же порядок, что и в исходном файле XML?

Если да, верно ли это, даже если XML имеет глубокое вложение, и я называю selectNodes(String xPathExpr) метод на любом Element объект из этого документа объекта.

2 ответа

Решение

XPath не меняет порядок элементов при возврате результатов, поэтому элементы находятся точно в том же порядке, что и в вашем входном XML.

Списки - это упорядоченные структуры. У SAXReader нет причин удалять этот заказ.

Другие вопросы по тегам