Java Code Examples for org.w3c.dom.Document#createCDATASection()
The following examples show how to use
org.w3c.dom.Document#createCDATASection() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: Grammar.java From JVoiceXML with GNU Lesser General Public License v2.1 | 6 votes |
/** * Creates a new CDATA section within this grammar. * @param data the CDATA to be added * @return the new created CDATA section * @since 0.7.5 */ public CDATASection addCData(final String data) { final Document document = getOwnerDocument(); final CDATASection node = document.createCDATASection(data); appendChild(node); return node; }
Example 2
Source File: TextStyleHandler.java From swcv with MIT License | 6 votes |
public void postRenderAction(SVGSVGElement root) { if (wcFont.isWebSafe()) return; Document document = root.getOwnerDocument(); Element defs = root.getElementById(SVGSyntax.ID_PREFIX_GENERIC_DEFS); Element style = document.createElementNS(SVGSyntax.SVG_NAMESPACE_URI, SVGSyntax.SVG_STYLE_TAG); style.setAttributeNS(null, SVGSyntax.SVG_TYPE_ATTRIBUTE, "text/css"); CDATASection styleSheet = document.createCDATASection(""); Font font = FontUtils.getFont(); styleSheet.setData("@font-face { font-family: '" + font.getFamily() + "'; src: url('static/fonts/" + wcFont.getName() + ".ttf');}"); style.appendChild(styleSheet); defs.appendChild(style); }
Example 3
Source File: Job2XMLTransformer.java From scheduling with GNU Affero General Public License v3.0 | 5 votes |
private Element createCDataElement(Document doc, String tagName, String elementText, Attribute... attribs) { Element el = doc.createElementNS(Schemas.SCHEMA_LATEST.getNamespace(), tagName); for (Attribute a : attribs) { el.setAttribute(a.getName(), a.getValue()); } if (elementText != null) { Text text = doc.createCDATASection(elementText); el.appendChild(text); } return el; }
Example 4
Source File: Bug4915748.java From openjdk-jdk9 with GNU General Public License v2.0 | 5 votes |
@Test public void testMain() throws Exception { final boolean[] hadError = new boolean[1]; DocumentBuilderFactory docBF = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docBF.newDocumentBuilder(); Document doc = docBuilder.getDOMImplementation().createDocument("namespaceURI", "ns:root", null); CDATASection cdata = doc.createCDATASection("text1]]>text2"); doc.getDocumentElement().appendChild(cdata); DOMConfiguration config = doc.getDomConfig(); DOMErrorHandler erroHandler = new DOMErrorHandler() { public boolean handleError(DOMError error) { System.out.println(error.getMessage()); Assert.assertEquals(error.getType(), "cdata-sections-splitted"); Assert.assertFalse(hadError[0], "two errors were reported"); hadError[0] = true; return false; } }; config.setParameter("error-handler", erroHandler); doc.normalizeDocument(); Assert.assertTrue(hadError[0]); }
Example 5
Source File: DomHelper.java From jaxb2-maven-plugin with Apache License 2.0 | 5 votes |
/** * <p>Adds the given formattedDocumentation within an XML documentation annotation under the supplied Node. * Only adds the documentation annotation if the formattedDocumentation is non-null and non-empty. The * documentation annotation is on the form:</p> * <pre> * <code> * <xs:annotation> * <xs:documentation>(JavaDoc here, within a CDATA section)</xs:documentation> * </xs:annotation> * </code> * </pre> * * @param aNode The non-null Node to which an XML documentation annotation should be added. * @param formattedDocumentation The documentation text to add. */ public static void addXmlDocumentAnnotationTo(final Node aNode, final String formattedDocumentation) { if (aNode != null && formattedDocumentation != null && !formattedDocumentation.isEmpty()) { // Add the new Elements, as required. final Document doc = aNode.getOwnerDocument(); final Element annotation = doc.createElementNS( XMLConstants.W3C_XML_SCHEMA_NS_URI, ANNOTATION_ELEMENT_NAME); final Element docElement = doc.createElementNS( XMLConstants.W3C_XML_SCHEMA_NS_URI, DOCUMENTATION_ELEMENT_NAME); final CDATASection xsdDocumentation = doc.createCDATASection(formattedDocumentation); // Set the prefixes annotation.setPrefix(XSD_SCHEMA_NAMESPACE_PREFIX); docElement.setPrefix(XSD_SCHEMA_NAMESPACE_PREFIX); // Inject the formattedDocumentation into the CDATA section. annotation.appendChild(docElement); final Node firstChildOfCurrentNode = aNode.getFirstChild(); if (firstChildOfCurrentNode == null) { aNode.appendChild(annotation); } else { aNode.insertBefore(annotation, firstChildOfCurrentNode); } // All Done. docElement.appendChild(xsdDocumentation); } }
Example 6
Source File: MakeNBM.java From netbeans with Apache License 2.0 | 5 votes |
public org.w3c.dom.Text getTextNode(Document ownerDoc) { // XXX Current XMLUtil.write anyway does not preserve CDATA sections, it seems. String nocdata = getProject().getProperty("makenbm.nocdata"); if (nocdata != null && Project.toBoolean(nocdata)) { return ownerDoc.createTextNode(text.toString()); } else { return ownerDoc.createCDATASection(text.toString()); } }
Example 7
Source File: DOMFactory.java From c2mon with GNU Lesser General Public License v3.0 | 5 votes |
/** * Generates an xml element from this pojo. Translating the fields like described * in the class description. * @param document The document in which the nodes should be. * @param rootName This is to use another name for the root element than the * simple class name. * @param pojo The pojo to take the fields from. * @param attributes The fields which should be used as attributes and not * as elements. * @return The create element representing the provided pojo. * @throws ParserConfigurationException Might throw a ParserConfigurationException. * @throws IllegalAccessException Might throw a IllegalAccessException. * @throws InstantiationException Might throw a InstantiationException. */ public Element generateSimpleElement(final Document document, final String rootName, final Object pojo, final List<String> attributes) throws ParserConfigurationException, IllegalAccessException, InstantiationException { Element rootNode = document.createElementNS(getDefaultNamespace(), rootName); List<Field> fields = getNonTransientSimpleFields(pojo.getClass()); for (Field field : fields) { field.setAccessible(true); String fieldName = field.getName(); if (field.get(pojo) != null) { if (!attributes.contains(fieldName)) { Element element = document.createElementNS(getDefaultNamespace(), getElementName(field)); // handle CDATAs if (field.isAnnotationPresent(XmlValue.class)) { CDATASection cdata = document.createCDATASection(field.get(pojo).toString()); element.appendChild(cdata); } else { element.setTextContent(field.get(pojo).toString()); } rootNode.appendChild(element); } else { rootNode.setAttribute(getAttributeName(field), field.get(pojo).toString()); } } } return rootNode; }
Example 8
Source File: DOMConfigurationTest.java From openjdk-jdk9 with GNU General Public License v2.0 | 5 votes |
/** * Equivalence class partitioning with state and input values orientation * for public void setParameter(String name, Object value) throws * DOMException, <br> * <b>pre-conditions</b>: The root contains a CDATASection with the * termination marker ']]>', <br> * <b>name</b>: split-cdata-sections <br> * <b>value</b>: true. <br> * <b>Expected results</b>: A warning is reported when the section is * splitted */ @Test public void testSplitCDATA001() { DOMImplementation domImpl = null; try { domImpl = DocumentBuilderFactory.newInstance().newDocumentBuilder().getDOMImplementation(); } catch (ParserConfigurationException pce) { Assert.fail(pce.toString()); } catch (FactoryConfigurationError fce) { Assert.fail(fce.toString()); } Document doc = domImpl.createDocument("namespaceURI", "ns:root", null); DOMConfiguration config = doc.getDomConfig(); CDATASection cdata = doc.createCDATASection("text]" + "]>text"); doc.getDocumentElement().appendChild(cdata); TestHandler testHandler = new TestHandler(); config.setParameter("error-handler", testHandler); if (!config.canSetParameter("split-cdata-sections", Boolean.TRUE)) { Assert.fail("cannot set the parameters 'split-cdata-sections' to true"); } config.setParameter("split-cdata-sections", Boolean.TRUE); doc.normalizeDocument(); if (null == testHandler.getWarning()) { Assert.fail("no warning is reported"); } return; // Status.passed("OK"); }
Example 9
Source File: test_XpathNodeTracker.java From xmlunit with Apache License 2.0 | 5 votes |
public void testNodes() throws Exception { Document doc = XMLUnit.newControlParser().newDocument(); Element element = doc.createElementNS("http://example.com/xmlunit", "eg:root"); xpathNodeTracker.visited(element); assertEquals("root element", "/root[1]", xpathNodeTracker.toXpathString()); Attr attr = doc.createAttributeNS("http://example.com/xmlunit", "eg:type"); attr.setValue("qwerty"); element.setAttributeNodeNS(attr); xpathNodeTracker.visited(attr); assertEquals("root element attribute", "/root[1]/@type", xpathNodeTracker.toXpathString()); xpathNodeTracker.indent(); Comment comment = doc.createComment("testing a comment"); xpathNodeTracker.visited(comment); assertEquals("comment", "/root[1]/comment()[1]", xpathNodeTracker.toXpathString()); ProcessingInstruction pi = doc.createProcessingInstruction("target","data"); xpathNodeTracker.visited(pi); assertEquals("p-i", "/root[1]/processing-instruction()[1]", xpathNodeTracker.toXpathString()); Text text = doc.createTextNode("some text"); xpathNodeTracker.visited(text); assertEquals("text", "/root[1]/text()[1]", xpathNodeTracker.toXpathString()); CDATASection cdata = doc.createCDATASection("some characters"); xpathNodeTracker.visited(cdata); assertEquals("cdata", "/root[1]/text()[2]", xpathNodeTracker.toXpathString()); }
Example 10
Source File: DOMUtil.java From Bytecoder with Apache License 2.0 | 4 votes |
/** * Copies the source tree into the specified place in a destination * tree. The source node and its children are appended as children * of the destination node. * <p> * <em>Note:</em> This is an iterative implementation. */ public static void copyInto(Node src, Node dest) throws DOMException { // get node factory Document factory = dest.getOwnerDocument(); boolean domimpl = factory instanceof DocumentImpl; // placement variables Node start = src; Node parent = src; Node place = src; // traverse source tree while (place != null) { // copy this node Node node = null; int type = place.getNodeType(); switch (type) { case Node.CDATA_SECTION_NODE: { node = factory.createCDATASection(place.getNodeValue()); break; } case Node.COMMENT_NODE: { node = factory.createComment(place.getNodeValue()); break; } case Node.ELEMENT_NODE: { Element element = factory.createElement(place.getNodeName()); node = element; NamedNodeMap attrs = place.getAttributes(); int attrCount = attrs.getLength(); for (int i = 0; i < attrCount; i++) { Attr attr = (Attr)attrs.item(i); String attrName = attr.getNodeName(); String attrValue = attr.getNodeValue(); element.setAttribute(attrName, attrValue); if (domimpl && !attr.getSpecified()) { ((AttrImpl)element.getAttributeNode(attrName)).setSpecified(false); } } break; } case Node.ENTITY_REFERENCE_NODE: { node = factory.createEntityReference(place.getNodeName()); break; } case Node.PROCESSING_INSTRUCTION_NODE: { node = factory.createProcessingInstruction(place.getNodeName(), place.getNodeValue()); break; } case Node.TEXT_NODE: { node = factory.createTextNode(place.getNodeValue()); break; } default: { throw new IllegalArgumentException("can't copy node type, "+ type+" ("+ place.getNodeName()+')'); } } dest.appendChild(node); // iterate over children if (place.hasChildNodes()) { parent = place; place = place.getFirstChild(); dest = node; } // advance else { place = place.getNextSibling(); while (place == null && parent != start) { place = parent.getNextSibling(); parent = parent.getParentNode(); dest = dest.getParentNode(); } } } }
Example 11
Source File: DOMUtil.java From openjdk-8-source with GNU General Public License v2.0 | 4 votes |
/** * Copies the source tree into the specified place in a destination * tree. The source node and its children are appended as children * of the destination node. * <p> * <em>Note:</em> This is an iterative implementation. */ public static void copyInto(Node src, Node dest) throws DOMException { // get node factory Document factory = dest.getOwnerDocument(); boolean domimpl = factory instanceof DocumentImpl; // placement variables Node start = src; Node parent = src; Node place = src; // traverse source tree while (place != null) { // copy this node Node node = null; int type = place.getNodeType(); switch (type) { case Node.CDATA_SECTION_NODE: { node = factory.createCDATASection(place.getNodeValue()); break; } case Node.COMMENT_NODE: { node = factory.createComment(place.getNodeValue()); break; } case Node.ELEMENT_NODE: { Element element = factory.createElement(place.getNodeName()); node = element; NamedNodeMap attrs = place.getAttributes(); int attrCount = attrs.getLength(); for (int i = 0; i < attrCount; i++) { Attr attr = (Attr)attrs.item(i); String attrName = attr.getNodeName(); String attrValue = attr.getNodeValue(); element.setAttribute(attrName, attrValue); if (domimpl && !attr.getSpecified()) { ((AttrImpl)element.getAttributeNode(attrName)).setSpecified(false); } } break; } case Node.ENTITY_REFERENCE_NODE: { node = factory.createEntityReference(place.getNodeName()); break; } case Node.PROCESSING_INSTRUCTION_NODE: { node = factory.createProcessingInstruction(place.getNodeName(), place.getNodeValue()); break; } case Node.TEXT_NODE: { node = factory.createTextNode(place.getNodeValue()); break; } default: { throw new IllegalArgumentException("can't copy node type, "+ type+" ("+ place.getNodeName()+')'); } } dest.appendChild(node); // iterate over children if (place.hasChildNodes()) { parent = place; place = place.getFirstChild(); dest = node; } // advance else { place = place.getNextSibling(); while (place == null && parent != start) { place = parent.getNextSibling(); parent = parent.getParentNode(); dest = dest.getParentNode(); } } } }
Example 12
Source File: RWikiEntityImpl.java From sakai with Educational Community License v2.0 | 4 votes |
/** * {@inheritDoc} */ public Element toXml(Document doc, Stack stack) { if (rwo == null) throw new RuntimeException( " Cant serialise containers at the moment "); Element wikipage = doc.createElement(SchemaNames.EL_WIKIPAGE); if (stack.isEmpty()) { doc.appendChild(wikipage); } else { ((Element) stack.peek()).appendChild(wikipage); } stack.push(wikipage); wikipage.setAttribute(SchemaNames.ATTR_ID, rwo.getId()); wikipage.setAttribute(SchemaNames.ATTR_PAGE_NAME, rwo.getName()); wikipage.setAttribute(SchemaNames.ATTR_REVISION, String.valueOf(rwo .getRevision())); wikipage.setAttribute(SchemaNames.ATTR_USER, rwo.getUser()); wikipage.setAttribute(SchemaNames.ATTR_OWNER, rwo.getOwner()); // I would like to be able to render this, but we cant... because its a // pojo ! getProperties().toXml(doc, stack); Element content = doc.createElement(SchemaNames.EL_WIKICONTENT); stack.push(content); wikipage.appendChild(content); content.setAttribute("enc", "BASE64"); try { String b64Content = Base64.encode(rwo.getContent() .getBytes("UTF-8")); CDATASection t = doc.createCDATASection(b64Content); stack.push(t); content.appendChild(t); stack.pop(); } catch (UnsupportedEncodingException usex) { // if UTF-8 isnt available, we are in big trouble ! throw new IllegalStateException("Cannot find Encoding UTF-8"); } stack.pop(); stack.pop(); return wikipage; }
Example 13
Source File: DOMConfigurationTest.java From openjdk-jdk9 with GNU General Public License v2.0 | 4 votes |
/** * Equivalence class partitioning with state and input values orientation * for public void setParameter(String name, Object value) throws * DOMException, <br> * <b>pre-conditions</b>: the root element has one CDATASection followed by * one Text node, <br> * <b>name</b>: cdata-sections <br> * <b>value</b>: false. <br> * <b>Expected results</b>: the root element has one Text node with text of * the CDATASection and the Text node */ @Test public void testCdataSections002() { DOMImplementation domImpl = null; try { domImpl = DocumentBuilderFactory.newInstance().newDocumentBuilder().getDOMImplementation(); } catch (ParserConfigurationException pce) { Assert.fail(pce.toString()); } catch (FactoryConfigurationError fce) { Assert.fail(fce.toString()); } Document doc = domImpl.createDocument("namespaceURI", "ns:root", null); String cdataText = "CDATA CDATA CDATA"; String textText = "text text text"; CDATASection cdata = doc.createCDATASection(cdataText); Text text = doc.createTextNode(textText); DOMConfiguration config = doc.getDomConfig(); config.setParameter("cdata-sections", Boolean.FALSE); Element root = doc.getDocumentElement(); root.appendChild(cdata); root.appendChild(text); setHandler(doc); doc.normalizeDocument(); Node returned = root.getFirstChild(); if (returned.getNodeType() != Node.TEXT_NODE) { Assert.fail("reurned: " + returned + ", expected: TEXT_NODE"); } String returnedText = returned.getNodeValue(); if (!(cdataText + textText).equals(returnedText)) { Assert.fail("reurned: " + returnedText + ", expected: \"" + cdataText + textText + "\""); } return; // Status.passed("OK"); }
Example 14
Source File: DOMUtil.java From openjdk-8 with GNU General Public License v2.0 | 4 votes |
/** * Copies the source tree into the specified place in a destination * tree. The source node and its children are appended as children * of the destination node. * <p> * <em>Note:</em> This is an iterative implementation. */ public static void copyInto(Node src, Node dest) throws DOMException { // get node factory Document factory = dest.getOwnerDocument(); boolean domimpl = factory instanceof DocumentImpl; // placement variables Node start = src; Node parent = src; Node place = src; // traverse source tree while (place != null) { // copy this node Node node = null; int type = place.getNodeType(); switch (type) { case Node.CDATA_SECTION_NODE: { node = factory.createCDATASection(place.getNodeValue()); break; } case Node.COMMENT_NODE: { node = factory.createComment(place.getNodeValue()); break; } case Node.ELEMENT_NODE: { Element element = factory.createElement(place.getNodeName()); node = element; NamedNodeMap attrs = place.getAttributes(); int attrCount = attrs.getLength(); for (int i = 0; i < attrCount; i++) { Attr attr = (Attr)attrs.item(i); String attrName = attr.getNodeName(); String attrValue = attr.getNodeValue(); element.setAttribute(attrName, attrValue); if (domimpl && !attr.getSpecified()) { ((AttrImpl)element.getAttributeNode(attrName)).setSpecified(false); } } break; } case Node.ENTITY_REFERENCE_NODE: { node = factory.createEntityReference(place.getNodeName()); break; } case Node.PROCESSING_INSTRUCTION_NODE: { node = factory.createProcessingInstruction(place.getNodeName(), place.getNodeValue()); break; } case Node.TEXT_NODE: { node = factory.createTextNode(place.getNodeValue()); break; } default: { throw new IllegalArgumentException("can't copy node type, "+ type+" ("+ place.getNodeName()+')'); } } dest.appendChild(node); // iterate over children if (place.hasChildNodes()) { parent = place; place = place.getFirstChild(); dest = node; } // advance else { place = place.getNextSibling(); while (place == null && parent != start) { place = parent.getNextSibling(); parent = parent.getParentNode(); dest = dest.getParentNode(); } } } }
Example 15
Source File: DOMUtil.java From jdk1.8-source-analysis with Apache License 2.0 | 4 votes |
/** * Copies the source tree into the specified place in a destination * tree. The source node and its children are appended as children * of the destination node. * <p> * <em>Note:</em> This is an iterative implementation. */ public static void copyInto(Node src, Node dest) throws DOMException { // get node factory Document factory = dest.getOwnerDocument(); boolean domimpl = factory instanceof DocumentImpl; // placement variables Node start = src; Node parent = src; Node place = src; // traverse source tree while (place != null) { // copy this node Node node = null; int type = place.getNodeType(); switch (type) { case Node.CDATA_SECTION_NODE: { node = factory.createCDATASection(place.getNodeValue()); break; } case Node.COMMENT_NODE: { node = factory.createComment(place.getNodeValue()); break; } case Node.ELEMENT_NODE: { Element element = factory.createElement(place.getNodeName()); node = element; NamedNodeMap attrs = place.getAttributes(); int attrCount = attrs.getLength(); for (int i = 0; i < attrCount; i++) { Attr attr = (Attr)attrs.item(i); String attrName = attr.getNodeName(); String attrValue = attr.getNodeValue(); element.setAttribute(attrName, attrValue); if (domimpl && !attr.getSpecified()) { ((AttrImpl)element.getAttributeNode(attrName)).setSpecified(false); } } break; } case Node.ENTITY_REFERENCE_NODE: { node = factory.createEntityReference(place.getNodeName()); break; } case Node.PROCESSING_INSTRUCTION_NODE: { node = factory.createProcessingInstruction(place.getNodeName(), place.getNodeValue()); break; } case Node.TEXT_NODE: { node = factory.createTextNode(place.getNodeValue()); break; } default: { throw new IllegalArgumentException("can't copy node type, "+ type+" ("+ place.getNodeName()+')'); } } dest.appendChild(node); // iterate over children if (place.hasChildNodes()) { parent = place; place = place.getFirstChild(); dest = node; } // advance else { place = place.getNextSibling(); while (place == null && parent != start) { place = parent.getNextSibling(); parent = parent.getParentNode(); dest = dest.getParentNode(); } } } }
Example 16
Source File: DOMUtil.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 4 votes |
/** * Copies the source tree into the specified place in a destination * tree. The source node and its children are appended as children * of the destination node. * <p> * <em>Note:</em> This is an iterative implementation. */ public static void copyInto(Node src, Node dest) throws DOMException { // get node factory Document factory = dest.getOwnerDocument(); boolean domimpl = factory instanceof DocumentImpl; // placement variables Node start = src; Node parent = src; Node place = src; // traverse source tree while (place != null) { // copy this node Node node = null; int type = place.getNodeType(); switch (type) { case Node.CDATA_SECTION_NODE: { node = factory.createCDATASection(place.getNodeValue()); break; } case Node.COMMENT_NODE: { node = factory.createComment(place.getNodeValue()); break; } case Node.ELEMENT_NODE: { Element element = factory.createElement(place.getNodeName()); node = element; NamedNodeMap attrs = place.getAttributes(); int attrCount = attrs.getLength(); for (int i = 0; i < attrCount; i++) { Attr attr = (Attr)attrs.item(i); String attrName = attr.getNodeName(); String attrValue = attr.getNodeValue(); element.setAttribute(attrName, attrValue); if (domimpl && !attr.getSpecified()) { ((AttrImpl)element.getAttributeNode(attrName)).setSpecified(false); } } break; } case Node.ENTITY_REFERENCE_NODE: { node = factory.createEntityReference(place.getNodeName()); break; } case Node.PROCESSING_INSTRUCTION_NODE: { node = factory.createProcessingInstruction(place.getNodeName(), place.getNodeValue()); break; } case Node.TEXT_NODE: { node = factory.createTextNode(place.getNodeValue()); break; } default: { throw new IllegalArgumentException("can't copy node type, "+ type+" ("+ place.getNodeName()+')'); } } dest.appendChild(node); // iterate over children if (place.hasChildNodes()) { parent = place; place = place.getFirstChild(); dest = node; } // advance else { place = place.getNextSibling(); while (place == null && parent != start) { place = parent.getNextSibling(); parent = parent.getParentNode(); dest = dest.getParentNode(); } } } }
Example 17
Source File: TransformTest.java From java-9-wtf with Apache License 2.0 | 4 votes |
private static void setCDataContent(Document document, String nodeName, String nodeContent) { CDATASection cDATASection = document.createCDATASection(nodeContent); document.getElementsByTagName(nodeName).item(0) .appendChild(cDATASection); }
Example 18
Source File: DOMUtil.java From JDKSourceCode1.8 with MIT License | 4 votes |
/** * Copies the source tree into the specified place in a destination * tree. The source node and its children are appended as children * of the destination node. * <p> * <em>Note:</em> This is an iterative implementation. */ public static void copyInto(Node src, Node dest) throws DOMException { // get node factory Document factory = dest.getOwnerDocument(); boolean domimpl = factory instanceof DocumentImpl; // placement variables Node start = src; Node parent = src; Node place = src; // traverse source tree while (place != null) { // copy this node Node node = null; int type = place.getNodeType(); switch (type) { case Node.CDATA_SECTION_NODE: { node = factory.createCDATASection(place.getNodeValue()); break; } case Node.COMMENT_NODE: { node = factory.createComment(place.getNodeValue()); break; } case Node.ELEMENT_NODE: { Element element = factory.createElement(place.getNodeName()); node = element; NamedNodeMap attrs = place.getAttributes(); int attrCount = attrs.getLength(); for (int i = 0; i < attrCount; i++) { Attr attr = (Attr)attrs.item(i); String attrName = attr.getNodeName(); String attrValue = attr.getNodeValue(); element.setAttribute(attrName, attrValue); if (domimpl && !attr.getSpecified()) { ((AttrImpl)element.getAttributeNode(attrName)).setSpecified(false); } } break; } case Node.ENTITY_REFERENCE_NODE: { node = factory.createEntityReference(place.getNodeName()); break; } case Node.PROCESSING_INSTRUCTION_NODE: { node = factory.createProcessingInstruction(place.getNodeName(), place.getNodeValue()); break; } case Node.TEXT_NODE: { node = factory.createTextNode(place.getNodeValue()); break; } default: { throw new IllegalArgumentException("can't copy node type, "+ type+" ("+ place.getNodeName()+')'); } } dest.appendChild(node); // iterate over children if (place.hasChildNodes()) { parent = place; place = place.getFirstChild(); dest = node; } // advance else { place = place.getNextSibling(); while (place == null && parent != start) { place = parent.getNextSibling(); parent = parent.getParentNode(); dest = dest.getParentNode(); } } } }
Example 19
Source File: DOMUtil.java From jdk8u60 with GNU General Public License v2.0 | 4 votes |
/** * Copies the source tree into the specified place in a destination * tree. The source node and its children are appended as children * of the destination node. * <p> * <em>Note:</em> This is an iterative implementation. */ public static void copyInto(Node src, Node dest) throws DOMException { // get node factory Document factory = dest.getOwnerDocument(); boolean domimpl = factory instanceof DocumentImpl; // placement variables Node start = src; Node parent = src; Node place = src; // traverse source tree while (place != null) { // copy this node Node node = null; int type = place.getNodeType(); switch (type) { case Node.CDATA_SECTION_NODE: { node = factory.createCDATASection(place.getNodeValue()); break; } case Node.COMMENT_NODE: { node = factory.createComment(place.getNodeValue()); break; } case Node.ELEMENT_NODE: { Element element = factory.createElement(place.getNodeName()); node = element; NamedNodeMap attrs = place.getAttributes(); int attrCount = attrs.getLength(); for (int i = 0; i < attrCount; i++) { Attr attr = (Attr)attrs.item(i); String attrName = attr.getNodeName(); String attrValue = attr.getNodeValue(); element.setAttribute(attrName, attrValue); if (domimpl && !attr.getSpecified()) { ((AttrImpl)element.getAttributeNode(attrName)).setSpecified(false); } } break; } case Node.ENTITY_REFERENCE_NODE: { node = factory.createEntityReference(place.getNodeName()); break; } case Node.PROCESSING_INSTRUCTION_NODE: { node = factory.createProcessingInstruction(place.getNodeName(), place.getNodeValue()); break; } case Node.TEXT_NODE: { node = factory.createTextNode(place.getNodeValue()); break; } default: { throw new IllegalArgumentException("can't copy node type, "+ type+" ("+ place.getNodeName()+')'); } } dest.appendChild(node); // iterate over children if (place.hasChildNodes()) { parent = place; place = place.getFirstChild(); dest = node; } // advance else { place = place.getNextSibling(); while (place == null && parent != start) { place = parent.getNextSibling(); parent = parent.getParentNode(); dest = dest.getParentNode(); } } } }
Example 20
Source File: DOMUtil.java From TencentKona-8 with GNU General Public License v2.0 | 4 votes |
/** * Copies the source tree into the specified place in a destination * tree. The source node and its children are appended as children * of the destination node. * <p> * <em>Note:</em> This is an iterative implementation. */ public static void copyInto(Node src, Node dest) throws DOMException { // get node factory Document factory = dest.getOwnerDocument(); boolean domimpl = factory instanceof DocumentImpl; // placement variables Node start = src; Node parent = src; Node place = src; // traverse source tree while (place != null) { // copy this node Node node = null; int type = place.getNodeType(); switch (type) { case Node.CDATA_SECTION_NODE: { node = factory.createCDATASection(place.getNodeValue()); break; } case Node.COMMENT_NODE: { node = factory.createComment(place.getNodeValue()); break; } case Node.ELEMENT_NODE: { Element element = factory.createElement(place.getNodeName()); node = element; NamedNodeMap attrs = place.getAttributes(); int attrCount = attrs.getLength(); for (int i = 0; i < attrCount; i++) { Attr attr = (Attr)attrs.item(i); String attrName = attr.getNodeName(); String attrValue = attr.getNodeValue(); element.setAttribute(attrName, attrValue); if (domimpl && !attr.getSpecified()) { ((AttrImpl)element.getAttributeNode(attrName)).setSpecified(false); } } break; } case Node.ENTITY_REFERENCE_NODE: { node = factory.createEntityReference(place.getNodeName()); break; } case Node.PROCESSING_INSTRUCTION_NODE: { node = factory.createProcessingInstruction(place.getNodeName(), place.getNodeValue()); break; } case Node.TEXT_NODE: { node = factory.createTextNode(place.getNodeValue()); break; } default: { throw new IllegalArgumentException("can't copy node type, "+ type+" ("+ place.getNodeName()+')'); } } dest.appendChild(node); // iterate over children if (place.hasChildNodes()) { parent = place; place = place.getFirstChild(); dest = node; } // advance else { place = place.getNextSibling(); while (place == null && parent != start) { place = parent.getNextSibling(); parent = parent.getParentNode(); dest = dest.getParentNode(); } } } }