【问题标题】:Does org.dom4j.io.SAXReader.read(Reader reader) method preserves the order of elements and attributes of XMLorg.dom4j.io.SAXReader.read(Reader reader) 方法是否保留了 XML 元素和属性的顺序
【发布时间】:2013-07-10 04:59:29
【问题描述】:

我的 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 文件,那么 selectNodes(String xPathExpr) 方法返回的 dataElements 列表是否与原始 XML 文件中的顺序相同?

如果是,即使 XML 具有深度嵌套并且我从该文档对象中调用任何 Element 对象上的 selectNodes(String xPathExpr) 方法,这是否成立。

【问题讨论】:

    标签: java xml xml-parsing sax dom4j


    【解决方案1】:

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

    【讨论】:

    • 感谢@tfoo 的回答,我还可以确定我的document 对象将始终具有与XML 文件相同的序列吗?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2022-01-15
      • 2018-11-26
      • 2011-02-11
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多