Node[] formChildNodes = element.getChildNodes(); parentNode.insertAfter(formChildNodes, element); return false;
/** * Performs the fix for elements. */ protected void fixElements() { for (Element fosterElement : fosterElements) { // find parent table Element lastTable = findLastTable(fosterElement); Node fosterElementParent = fosterElement.getParentNode(); // filter our foster element Node[] fosterChilds = fosterElement.getChildNodes(); for (Node fosterChild : fosterChilds) { if (fosterChild.getNodeType() == Node.NodeType.ELEMENT) { if (isOneOfTableElements((Element) fosterChild)) { // move all child table elements outside // the foster element fosterChild.detachFromParent(); fosterElementParent.insertBefore(fosterChild, fosterElement); } } } // finally, move foster element above the table fosterElement.detachFromParent(); lastTable.getParentNode().insertBefore(fosterElement, lastTable); } }
assertEquals(3, html.getChildElementsCount("div")); Node[] node = html.getChildNodes(); assertEquals(div1, node[0]); assertEquals(div2, node[1]); assertEquals(3, html.getChildElementsCount("div")); node = html.getChildNodes(); assertEquals(div1, node[0]); assertEquals(div2, node[1]); node = html.getChildNodes(); assertEquals(div1, node[0]); assertEquals(div3, node[1]); html.insertBefore(div2, div1); node = html.getChildNodes(); assertEquals(div2, node[0]); assertEquals(div1, node[1]);
/** * Performs the fix for elements. */ protected void fixElements() { for (Element fosterElement : fosterElements) { // find parent table Element lastTable = findLastTable(fosterElement); Node fosterElementParent = fosterElement.getParentNode(); // filter our foster element Node[] fosterChilds = fosterElement.getChildNodes(); for (Node fosterChild : fosterChilds) { if (fosterChild.getNodeType() == Node.NodeType.ELEMENT) { if (isOneOfTableElements((Element) fosterChild)) { // move all child table elements outside // the foster element fosterChild.detachFromParent(); fosterElementParent.insertBefore(fosterChild, fosterElement); } } } // finally, move foster element above the table fosterElement.detachFromParent(); lastTable.getParentNode().insertBefore(fosterElement, lastTable); } }
@Test void testSpecialCases() { Document document = new Document(); Element html = new Element(document, "html"); document.addChild(html); assertEquals(0, html.getChildNodesCount()); assertNull(html.getChild(0)); assertNull(html.getChild(1000)); assertEquals(0, html.getChildNodes().length); assertNull(html.getFirstChild()); assertNull(html.getFirstChildElement()); assertNull(html.getFirstChildElement("h1")); assertNull(html.getLastChild()); assertNull(html.getLastChildElement()); assertNull(html.getLastChildElement("h1")); assertEquals(0, html.getSiblingIndex()); assertEquals(0, html.getSiblingElementIndex()); assertEquals(0, html.getSiblingNameIndex()); assertTrue(document.check()); }
/** * Performs the fix for elements. */ protected void fixElements() { for (Element fosterElement : fosterElements) { // find parent table Element lastTable = findLastTable(fosterElement); Node fosterElementParent = fosterElement.getParentNode(); // filter our foster element Node[] fosterChilds = fosterElement.getChildNodes(); for (Node fosterChild : fosterChilds) { if (fosterChild.getNodeType() == Node.NodeType.ELEMENT) { if (isOneOfTableElements((Element) fosterChild)) { // move all child table elements outside // the foster element fosterChild.detachFromParent(); fosterElementParent.insertBefore(fosterChild, fosterElement); } } } // finally, move foster element above the table fosterElement.detachFromParent(); lastTable.getParentNode().insertBefore(fosterElement, lastTable); } }
Node[] formChildNodes = element.getChildNodes(); parentNode.insertAfter(formChildNodes, element); return false;
Node[] formChildNodes = element.getChildNodes(); parentNode.insertAfter(formChildNodes, element); return false;