org.dom4j.io.SAXReader.read(Reader reader)方法是否保留XML的元素和属性的顺序

时间:2013-07-11 19:15:21

标签: java xml xml-parsing sax dom4j

我的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 个答案:

答案 0 :(得分:1)

列表是有序结构。 SAXReader没有理由删除该订单。

答案 1 :(得分:1)

XPath在返回结果时不会更改元素的顺序,因此元素的顺序与输入xml中的顺序完全相同。