Сохраняет ли метод 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 нет причин удалять этот заказ.