DOM4J 按数字方式对节点元素进行排序

问题描述 投票:0回答:1

我正在使用 DocumentHelper 使用类似于下面的代码对节点列表进行排序,但看起来它是按字母数字顺序排序的。 xPath 指向基于整数的属性。如何调整此代码以进行基于整数的排序?

public static void sortChildElements(Element parent, String xpath) {

    // Create a copy of the elements list and sort it
    List list = new ArrayList(parent.elements());
    DocumentHelper.sort(list, xpath);

    // Iterate over sorted list. Remove and add all in order
    Iterator it = list.iterator();
    while (it.hasNext()) {
        Element element = (Element) it.next();
        parent.remove(element);
        parent.add(element);
    }
}
dom4j
1个回答
0
投票

向 XPath 字符串添加了“number”函数

private void sortNodesByIndex(Element parent, List<Node> pointList) {
        DocumentHelper.sort(pointList, "number[@Index]");
        for (Node node : pointList) {
            parent.remove(node);
            parent.add(node);
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.