package org.nate.internal.dom4j.cssselectors; import java.util.List; import org.dom4j.Branch; import org.dom4j.Element; import org.w3c.dom.Node; /** * Simple port of Christer Sandberg's CSS selectors to Dom4j (https://github.com/chrsan/css-selectors) */ public class DOMHelper { public static Element getPreviousSiblingElement(Branch node) { if (node.getNodeType() == Node.DOCUMENT_NODE) { return null; } Element element = (Element) node; List<Element> elements = element.getParent().elements(); int indexOfPreviousSibling = elements.indexOf(element) - 1; if (indexOfPreviousSibling < 0) { return null; } return elements.get(indexOfPreviousSibling); } public static Branch getNextSiblingElement(Branch node) { if (node.getNodeType() == Node.DOCUMENT_NODE) { return null; } Element element = (Element) node; Element parent = element.getParent(); if (parent == null) { return null; } List<Element> elements = parent.elements(); int indexOfNextSibling = elements.indexOf(element) + 1; if (indexOfNextSibling >= elements.size()) { return null; } return elements.get(indexOfNextSibling); } }