public static List<Element> getTags(Document doc, String tagName) { NodeList list = doc.getElementsByTagName(tagName); List<Element> elements = Lists.newArrayListWithExpectedSize(list.getLength()); for (int i = 0; i < list.getLength(); i++) { elements.add((Element) list.item(i)); } // Add equivalent <script> elements String scriptType = SCRIPT_TYPE_TO_OSML_TAG.inverse().get(tagName); if (scriptType != null) { List<Element> scripts = DomUtil.getElementsByTagNameCaseInsensitive(doc, ImmutableSet.of("script")); for (Element script : scripts) { Attr typeAttr = (Attr)script.getAttributes().getNamedItem("type"); if (typeAttr != null && scriptType.equalsIgnoreCase(typeAttr.getValue())) { elements.add(script); } } } return elements; }
public boolean revisit(Gadget gadget, List<Node> nodes) throws RewritingException { Node head = DomUtil.getFirstNamedChildNode( nodes.get(0).getOwnerDocument().getDocumentElement(), "head"); if (head == null) { // Should never occur; do for paranoia's sake. return false; } // Detach nodes for (Node n : nodes) { n.getParentNode().removeChild(n); } // Add nodes back to DOM if (head.getFirstChild() == null) { // add each node to head for (Node n : nodes) { head.appendChild(n); } } else { // existing nodes in head, inject all nodes before the first one Node firstChild = head.getFirstChild(); for (Node n : nodes) { head.insertBefore(n, firstChild); } } return true; }
@Test public void getLastNamedChildNode() { assertEquals("two", DomUtil.getLastNamedChildNode(root, "element").getTextContent()); assertEquals("not real", DomUtil.getLastNamedChildNode(root, "other").getTextContent()); assertNull("Did not return null for missing element.", DomUtil.getLastNamedChildNode(root, "fake")); }
public boolean revisit(Gadget gadget, List<Node> nodes) throws RewritingException { Node head = DomUtil.getFirstNamedChildNode( nodes.get(0).getOwnerDocument().getDocumentElement(), "head"); if (head == null) { // Should never occur; do for paranoia's sake. return false; } // Detach nodes for (Node n : nodes) { n.getParentNode().removeChild(n); } // Add nodes back to DOM if (head.getFirstChild() == null) { // add each node to head for (Node n : nodes) { head.appendChild(n); } } else { // existing nodes in head, inject all nodes before the first one Node firstChild = head.getFirstChild(); for (Node n : nodes) { head.insertBefore(n, firstChild); } } return true; }
public static List<Element> getTags(Document doc, String tagName) { NodeList list = doc.getElementsByTagName(tagName); List<Element> elements = Lists.newArrayListWithExpectedSize(list.getLength()); for (int i = 0; i < list.getLength(); i++) { elements.add((Element) list.item(i)); } // Add equivalent <script> elements String scriptType = SCRIPT_TYPE_TO_OSML_TAG.inverse().get(tagName); if (scriptType != null) { List<Element> scripts = DomUtil.getElementsByTagNameCaseInsensitive(doc, ImmutableSet.of("script")); for (Element script : scripts) { Attr typeAttr = (Attr)script.getAttributes().getNamedItem("type"); if (typeAttr != null && scriptType.equalsIgnoreCase(typeAttr.getValue())) { elements.add(script); } } } return elements; }
@Test public void getLastNamedChildNode() { assertEquals("two", DomUtil.getLastNamedChildNode(root, "element").getTextContent()); assertEquals("not real", DomUtil.getLastNamedChildNode(root, "other").getTextContent()); assertNull("Did not return null for missing element.", DomUtil.getLastNamedChildNode(root, "fake")); }
public boolean revisit(Gadget gadget, List<Node> nodes) throws RewritingException { Node head = DomUtil.getFirstNamedChildNode( nodes.get(0).getOwnerDocument().getDocumentElement(), "head"); if (head == null) { // Should never occur; do for paranoia's sake. return false; } // Detach nodes for (Node n : nodes) { n.getParentNode().removeChild(n); } // Add nodes back to DOM if (head.getFirstChild() == null) { // add each node to head for (Node n : nodes) { head.appendChild(n); } } else { // existing nodes in head, inject all nodes before the first one Node firstChild = head.getFirstChild(); for (Node n : nodes) { head.insertBefore(n, firstChild); } } return true; }
public static List<Element> getTags(Document doc, String tagName) { NodeList list = doc.getElementsByTagName(tagName); List<Element> elements = Lists.newArrayListWithExpectedSize(list.getLength()); for (int i = 0; i < list.getLength(); i++) { elements.add((Element) list.item(i)); } // Add equivalent <script> elements String scriptType = SCRIPT_TYPE_TO_OSML_TAG.inverse().get(tagName); if (scriptType != null) { List<Element> scripts = DomUtil.getElementsByTagNameCaseInsensitive(doc, ImmutableSet.of("script")); for (Element script : scripts) { Attr typeAttr = (Attr)script.getAttributes().getNamedItem("type"); if (typeAttr != null && scriptType.equalsIgnoreCase(typeAttr.getValue())) { elements.add(script); } } } return elements; }
@Test public void getLastNamedChildNode() throws Exception { Element root = XmlUtil.parse(XML); assertTrue(DomUtil.getLastNamedChildNode(root, "element") != null); assertEquals("two", DomUtil.getLastNamedChildNode(root, "element").getTextContent()); assertEquals("not real", DomUtil.getLastNamedChildNode(root, "other").getTextContent()); assertNull("Did not return null for missing element.", DomUtil.getLastNamedChildNode(root, "fake")); }
private void processTemplateDef(Builder<TagHandler> handlers, Element defElement) throws TemplateParserException { Attr tagAttribute = defElement.getAttributeNode(TAG_ATTRIBUTE); if (tagAttribute == null) { throw new TemplateParserException("Missing tag attribute on TemplateDef"); } ImmutableSet.Builder<TemplateResource> resources = ImmutableSet.builder(); Element scriptElement = (Element) DomUtil.getFirstNamedChildNode(defElement, JAVASCRIPT_TAG); if (scriptElement != null) { resources.add(TemplateResource.newJavascriptResource(scriptElement.getTextContent(), this)); } Element styleElement = (Element) DomUtil.getFirstNamedChildNode(defElement, STYLE_TAG); if (styleElement != null) { resources.add(TemplateResource.newStyleResource(styleElement.getTextContent(), this)); } Element templateElement = (Element) DomUtil.getFirstNamedChildNode(defElement, TEMPLATE_TAG); TagHandler handler = createHandler(tagAttribute.getNodeValue(), templateElement, resources.build()); if (handler != null) { handlers.add(handler); } }
@Test public void getElementsByTagNameCaseInsensitive() { Document doc = root.getOwnerDocument(); List<Element> elements = DomUtil.getElementsByTagNameCaseInsensitive(doc, ImmutableSet.of("element")); assertEquals("zero", elements.get(0).getTextContent()); assertEquals("one", elements.get(1).getTextContent()); assertEquals("two", elements.get(2).getTextContent()); } }
@Test public void getLastNamedChildNode() throws Exception { Element root = XmlUtil.parse(XML); assertTrue(DomUtil.getLastNamedChildNode(root, "element") != null); assertEquals("two", DomUtil.getLastNamedChildNode(root, "element").getTextContent()); assertEquals("not real", DomUtil.getLastNamedChildNode(root, "other").getTextContent()); assertNull("Did not return null for missing element.", DomUtil.getLastNamedChildNode(root, "fake")); }
private void processTemplateDef(Builder<TagHandler> handlers, Element defElement) throws TemplateParserException { Attr tagAttribute = defElement.getAttributeNode(TAG_ATTRIBUTE); if (tagAttribute == null) { throw new TemplateParserException("Missing tag attribute on TemplateDef"); } ImmutableSet.Builder<TemplateResource> resources = ImmutableSet.builder(); Element scriptElement = (Element) DomUtil.getFirstNamedChildNode(defElement, JAVASCRIPT_TAG); if (scriptElement != null) { resources.add(TemplateResource.newJavascriptResource(scriptElement.getTextContent(), this)); } Element styleElement = (Element) DomUtil.getFirstNamedChildNode(defElement, STYLE_TAG); if (styleElement != null) { resources.add(TemplateResource.newStyleResource(styleElement.getTextContent(), this)); } Element templateElement = (Element) DomUtil.getFirstNamedChildNode(defElement, TEMPLATE_TAG); TagHandler handler = createHandler(tagAttribute.getNodeValue(), templateElement, resources.build()); if (handler != null) { handlers.add(handler); } }
@Test public void getElementsByTagNameCaseInsensitive() { Document doc = root.getOwnerDocument(); List<Element> elements = DomUtil.getElementsByTagNameCaseInsensitive(doc, ImmutableSet.of("element")); assertEquals("zero", elements.get(0).getTextContent()); assertEquals("one", elements.get(1).getTextContent()); assertEquals("two", elements.get(2).getTextContent()); } }
@Test public void getLastNamedChildNode() throws Exception { Element root = XmlUtil.parse(XML); assertTrue(DomUtil.getLastNamedChildNode(root, "element") != null); assertEquals("two", DomUtil.getLastNamedChildNode(root, "element").getTextContent()); assertEquals("not real", DomUtil.getLastNamedChildNode(root, "other").getTextContent()); assertNull("Did not return null for missing element.", DomUtil.getLastNamedChildNode(root, "fake")); }
private void processTemplateDef(Builder<TagHandler> handlers, Element defElement) throws TemplateParserException { Attr tagAttribute = null; synchronized (defElement) { tagAttribute = defElement.getAttributeNode(TAG_ATTRIBUTE); if (tagAttribute == null) { throw new TemplateParserException("Missing tag attribute on TemplateDef"); } } ImmutableSet.Builder<TemplateResource> resources = ImmutableSet.builder(); Element scriptElement = (Element) DomUtil.getFirstNamedChildNode(defElement, JAVASCRIPT_TAG); if (scriptElement != null) { resources.add(TemplateResource.newJavascriptResource(scriptElement.getTextContent(), this)); } Element styleElement = (Element) DomUtil.getFirstNamedChildNode(defElement, STYLE_TAG); if (styleElement != null) { resources.add(TemplateResource.newStyleResource(styleElement.getTextContent(), this)); } Element templateElement = (Element) DomUtil.getFirstNamedChildNode(defElement, TEMPLATE_TAG); TagHandler handler = createHandler(tagAttribute.getNodeValue(), templateElement, resources.build()); if (handler != null) { handlers.add(handler); } }
@Test public void getElementsByTagNameCaseInsensitive() throws Exception { Element root = XmlUtil.parse(XML); Document doc = root.getOwnerDocument(); List<Element> elements = DomUtil.getElementsByTagNameCaseInsensitive(doc, ImmutableSet.of("element")); assertEquals("zero", elements.get(0).getTextContent()); assertEquals("one", elements.get(1).getTextContent()); assertEquals("two", elements.get(2).getTextContent()); } }
Node html = DomUtil.getFirstNamedChildNode(document, "html"); if (html.getNextSibling() != null && html.getNextSibling().getNodeName().equalsIgnoreCase("html")) { Node head = DomUtil.getFirstNamedChildNode(html, "head"); if (head == null) { head = document.createElement("head"); Node body = DomUtil.getFirstNamedChildNode(html, "body"); if (body == null) { body = document.createElement("body");
@Test public void getElementsByTagNameCaseInsensitive() throws Exception { Element root = XmlUtil.parse(XML); Document doc = root.getOwnerDocument(); List<Element> elements = DomUtil.getElementsByTagNameCaseInsensitive(doc, ImmutableSet.of("element")); assertEquals("zero", elements.get(0).getTextContent()); assertEquals("one", elements.get(1).getTextContent()); assertEquals("two", elements.get(2).getTextContent()); } }
Node html = DomUtil.getFirstNamedChildNode(document, "html"); if (html.getNextSibling() != null && html.getNextSibling().getNodeName().equalsIgnoreCase("html")) { Node head = DomUtil.getFirstNamedChildNode(html, "head"); if (head == null) { head = document.createElement("head"); Node body = DomUtil.getFirstNamedChildNode(html, "body"); if (body == null) { body = document.createElement("body");