List of usage examples for org.w3c.dom Node appendChild
public Node appendChild(Node newChild) throws DOMException;
newChild
to the end of the list of children of this node. From source file:de.unigoettingen.sub.commons.contentlib.imagelib.JpegInterpreter.java
private void setSamplesPerLine(Node domNode, int samples) { Node markerSequenceNode = getFirstElementByName(domNode, "markerSequence"); if (markerSequenceNode == null) { markerSequenceNode = new IIOMetadataNode("markerSequence"); domNode.appendChild(markerSequenceNode); }/*ww w .j ava 2 s .c o m*/ Node sofNode = getFirstElementByName(markerSequenceNode, "sof"); if (sofNode == null) { sofNode = new IIOMetadataNode("sof"); markerSequenceNode.appendChild(sofNode); } Node attribute = getAttributeByName(sofNode, "samplesPerLine"); if (attribute == null) { attribute = new IIOMetadataNode("samplesPerLine"); sofNode.appendChild(attribute); } attribute.setNodeValue(Integer.toString(samples)); }
From source file:com.wfreitas.camelsoap.SoapClient.java
/** * Clone a collection node./*from w w w . j a va 2 s . c om*/ * <p/> * Note we have to frig with the OGNL expressions for collections/arrays because the * collection entry is represented by [0], [1] etc in the OGNL expression, not the actual * element name on the DOM e.g. collection node "order/items/item" (where "item" is the * actual collection entry) maps to the OGNL expression "order.items[0]" etc. * * @param element The collection/array "entry" sub-branch. * @param cloneCount The number of times it needs to be cloned. * @param ognl The OGNL expression for the collection/array. Not including the * indexing part. */ private void cloneCollectionTemplateElement(Element element, int cloneCount, String ognl) { if (element == null) { return; } Node insertPoint = element.getNextSibling(); Node parent = element.getParentNode(); element.setAttributeNS(OGNLUtils.JBOSSESB_SOAP_NS, OGNLUtils.JBOSSESB_SOAP_NS_PREFIX + OGNLUtils.OGNL_ATTRIB, ognl + "[0]"); for (int i = 0; i < cloneCount; i++) { Element clone = (Element) element.cloneNode(true); clone.setAttributeNS(OGNLUtils.JBOSSESB_SOAP_NS, OGNLUtils.JBOSSESB_SOAP_NS_PREFIX + IS_CLONE_ATTRIB, "true"); clone.setAttributeNS(OGNLUtils.JBOSSESB_SOAP_NS, OGNLUtils.JBOSSESB_SOAP_NS_PREFIX + OGNLUtils.OGNL_ATTRIB, ognl + "[" + Integer.toString(i + 1) + "]"); if (insertPoint == null) { parent.appendChild(clone); } else { parent.insertBefore(clone, insertPoint); } } }
From source file:dk.statsbiblioteket.doms.central.connectors.fedora.FedoraRest.java
@Override public String newEmptyObject(String pid, List<String> oldIDs, List<String> collections, String logMessage) throws BackendMethodFailedException, BackendInvalidCredsException { InputStream emptyObjectStream = Thread.currentThread().getContextClassLoader() .getResourceAsStream("EmptyObject.xml"); Document emptyObject = DOM.streamToDOM(emptyObjectStream, true); XPathSelector xpath = DOM.createXPathSelector("foxml", Constants.NAMESPACE_FOXML, "rdf", Constants.NAMESPACE_RDF, "d", Constants.NAMESPACE_RELATIONS, "dc", Constants.NAMESPACE_DC, "oai_dc", Constants.NAMESPACE_OAIDC);/*w w w .j ava2s . c o m*/ //Set pid Node pidNode = xpath.selectNode(emptyObject, "/foxml:digitalObject/@PID"); pidNode.setNodeValue(pid); Node rdfNode = xpath.selectNode(emptyObject, "/foxml:digitalObject/foxml:datastream/foxml:datastreamVersion/foxml:xmlContent/rdf:RDF/rdf:Description/@rdf:about"); rdfNode.setNodeValue("info:fedora/" + pid); //add Old Identifiers to DC Node dcIdentifierNode = xpath.selectNode(emptyObject, "/foxml:digitalObject/foxml:datastream/foxml:datastreamVersion/foxml:xmlContent/oai_dc:dc/dc:identifier"); dcIdentifierNode.setTextContent(pid); Node parent = dcIdentifierNode.getParentNode(); for (String oldID : oldIDs) { Node clone = dcIdentifierNode.cloneNode(true); clone.setTextContent(oldID); parent.appendChild(clone); } Node collectionRelationNode = xpath.selectNode(emptyObject, "/foxml:digitalObject/foxml:datastream/foxml:datastreamVersion/foxml:xmlContent/rdf:RDF/rdf:Description/d:isPartOfCollection"); parent = collectionRelationNode.getParentNode(); //remove the placeholder relationNode parent.removeChild(collectionRelationNode); for (String collection : collections) { Node clone = collectionRelationNode.cloneNode(true); clone.getAttributes().getNamedItem("rdf:resource").setNodeValue("info:fedora/" + collection); parent.appendChild(clone); } String emptyObjectAsString; try { emptyObjectAsString = DOM.domToString(emptyObject); } catch (TransformerException e) { //TODO This is not really a backend exception throw new BackendMethodFailedException("Failed to convert DC back to string", e); } WebResource.Builder request = restApi.path("/").path(urlEncode(pid)).queryParam("state", "I") .type(MediaType.TEXT_XML_TYPE); int tries = 0; while (true) { tries++; try { return request.post(String.class, emptyObjectAsString); } catch (UniformInterfaceException e) { try { handleResponseException(pid, tries, maxTriesPost, e); } catch (BackendInvalidResourceException e1) { //Ignore, never happens throw new RuntimeException(e1); } } } }
From source file:DOMProcessor.java
/** Renames the given element with the given new name. * @param existingElement Element to rename. * @param newName New name to give element. *///from www . j a v a 2 s. c om public void renameElement(Node existingElement, String newName) { // Create an element with the new name Node newElement = dom.createElement(newName); // Copy the attributes to the new element NamedNodeMap attrs = existingElement.getAttributes(); for (int i = 0; i < attrs.getLength(); i++) { Attr attr2 = (Attr) dom.importNode(attrs.item(i), true); newElement.getAttributes().setNamedItem(attr2); } // Move all the children while (existingElement.hasChildNodes()) { newElement.appendChild(existingElement.getFirstChild()); } // Replace the old node with the new node existingElement.getParentNode().replaceChild(newElement, existingElement); }
From source file:Main.java
/** * Clone given Node into target Document. If targe is null, same Document will be used. * If deep is specified, all children below will also be cloned. *//*from w ww. j a v a 2 s .com*/ public static Node cloneNode(Node node, Document target, boolean deep) throws DOMException { if (target == null || node.getOwnerDocument() == target) // same Document return node.cloneNode(deep); else { //DOM level 2 provides this in Document, so once xalan switches to that, //we can take out all the below and just call target.importNode(node, deep); //For now, we implement based on the javadocs for importNode Node newNode; int nodeType = node.getNodeType(); switch (nodeType) { case Node.ATTRIBUTE_NODE: newNode = target.createAttribute(node.getNodeName()); break; case Node.DOCUMENT_FRAGMENT_NODE: newNode = target.createDocumentFragment(); break; case Node.ELEMENT_NODE: Element newElement = target.createElement(node.getNodeName()); NamedNodeMap nodeAttr = node.getAttributes(); if (nodeAttr != null) for (int i = 0; i < nodeAttr.getLength(); i++) { Attr attr = (Attr) nodeAttr.item(i); if (attr.getSpecified()) { Attr newAttr = (Attr) cloneNode(attr, target, true); newElement.setAttributeNode(newAttr); } } newNode = newElement; break; case Node.ENTITY_REFERENCE_NODE: newNode = target.createEntityReference(node.getNodeName()); break; case Node.PROCESSING_INSTRUCTION_NODE: newNode = target.createProcessingInstruction(node.getNodeName(), node.getNodeValue()); break; case Node.TEXT_NODE: newNode = target.createTextNode(node.getNodeValue()); break; case Node.CDATA_SECTION_NODE: newNode = target.createCDATASection(node.getNodeValue()); break; case Node.COMMENT_NODE: newNode = target.createComment(node.getNodeValue()); break; case Node.NOTATION_NODE: case Node.ENTITY_NODE: case Node.DOCUMENT_TYPE_NODE: case Node.DOCUMENT_NODE: default: throw new IllegalArgumentException("Importing of " + node + " not supported yet"); } if (deep) for (Node child = node.getFirstChild(); child != null; child = child.getNextSibling()) newNode.appendChild(cloneNode(child, target, true)); return newNode; } }
From source file:Main.java
@SuppressWarnings("null") public static void copyInto(Node src, Node dest) throws DOMException { Document factory = dest.getOwnerDocument(); //Node start = src; Node parent = null;/* www . java2 s . c o m*/ 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()) { ((Attr) 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 + " (" + node.getNodeName() + ')'); } } dest.appendChild(node); // iterate over children if (place.hasChildNodes()) { parent = place; place = place.getFirstChild(); dest = node; } else if (parent == null) { place = null; } else { // advance place = place.getNextSibling(); while (place == null && parent != null && dest != null) { place = parent.getNextSibling(); parent = parent.getParentNode(); dest = dest.getParentNode(); } } } }
From source file:de.betterform.xml.xforms.ui.Repeat.java
private void initializePrototype(Node parent, Node prototype) { Node copy = prototype.cloneNode(false); if (copy.getNodeType() == Node.ELEMENT_NODE) { Element element = (Element) copy; if (element.getAttributeNS(null, "id").length() == 0 && XFormsElementFactory.isUIElement(element)) { element.setAttributeNS(null, "id", this.container.generateId()); }/*from www. j av a 2 s .c om*/ NodeList children = prototype.getChildNodes(); for (int index = 0; index < children.getLength(); index++) { initializePrototype(element, children.item(index)); } } parent.appendChild(copy); }
From source file:Main.java
/** * Clone given Node into target Document. If targe is null, same Document will be used. * If deep is specified, all children below will also be cloned. *//* w ww . jav a 2 s. co m*/ public final static Node cloneNode(Node node, Document target, boolean deep) throws DOMException { if ((target == null) || (node.getOwnerDocument() == target)) { // same Document return node.cloneNode(deep); } else { //DOM level 2 provides this in Document, so once xalan switches to that, //we can take out all the below and just call target.importNode(node, deep); //For now, we implement based on the javadocs for importNode Node newNode; int nodeType = node.getNodeType(); switch (nodeType) { case Node.ATTRIBUTE_NODE: newNode = target.createAttribute(node.getNodeName()); break; case Node.DOCUMENT_FRAGMENT_NODE: newNode = target.createDocumentFragment(); break; case Node.ELEMENT_NODE: Element newElement = target.createElement(node.getNodeName()); NamedNodeMap nodeAttr = node.getAttributes(); if (nodeAttr != null) { for (int i = 0; i < nodeAttr.getLength(); i++) { Attr attr = (Attr) nodeAttr.item(i); if (attr.getSpecified()) { Attr newAttr = (Attr) cloneNode(attr, target, true); newElement.setAttributeNode(newAttr); } } } newNode = newElement; break; case Node.ENTITY_REFERENCE_NODE: newNode = target.createEntityReference(node.getNodeName()); break; case Node.PROCESSING_INSTRUCTION_NODE: newNode = target.createProcessingInstruction(node.getNodeName(), node.getNodeValue()); break; case Node.TEXT_NODE: newNode = target.createTextNode(node.getNodeValue()); break; case Node.CDATA_SECTION_NODE: newNode = target.createCDATASection(node.getNodeValue()); break; case Node.COMMENT_NODE: newNode = target.createComment(node.getNodeValue()); break; case Node.NOTATION_NODE: case Node.ENTITY_NODE: case Node.DOCUMENT_TYPE_NODE: case Node.DOCUMENT_NODE: default: throw new IllegalArgumentException("Importing of " + node + " not supported yet"); } if (deep) { for (Node child = node.getFirstChild(); child != null; child = child.getNextSibling()) { newNode.appendChild(cloneNode(child, target, true)); } } return newNode; } }
From source file:com.zacwolf.commons.wbxcon.WBXCONorg.java
/** * Creates a new WebExConnect User Account.<br /> * <br />/*from ww w . j a v a 2s.c o m*/ * cmd=execute<br /> * task=ProvisionUserComplete<br /> * * @param account a <code>WBXCONuser</code> object that represents a new user * @param password a String password to use as the initial password for the new account * @param sendWelcomeEmail a true/false flag that determine if WebEx should send the normal Welcome Email to the new user * @throws WBXCONexception */ final WBXCONuser.WBXCONUID restapiAccountCreate(final WBXCONuser account, final String pass, final boolean sendWelcomeEmail) throws WBXCONexception { final List<NameValuePair> params; try { final Document doc = account.marshallXML(); final Element orgID = doc.createElement("orgID"); orgID.appendChild(doc.createTextNode(this.orgID)); final Element ISProviderID = doc.createElement("ISProviderID"); ISProviderID.appendChild(doc.createTextNode("WBX")); final Element ISProviders = doc.createElement("ISProviders"); ISProviders.appendChild(ISProviderID); final Element password = doc.createElement("password"); password.appendChild(doc.createTextNode(pass)); final Node user = doc.getElementsByTagName("user").item(0); user.appendChild(orgID); user.appendChild(ISProviders); user.appendChild(password); if (!sendWelcomeEmail) { final Element isSendCPIPMail = doc.createElement("isSendCPIPMail"); isSendCPIPMail.appendChild(doc.createTextNode("false")); user.appendChild(isSendCPIPMail); } params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("cmd", "execute")); params.add(new BasicNameValuePair("task", "ProvisionUserComplete")); params.add(new BasicNameValuePair("xml", documentToXMLstring(user))); } catch (final Exception e) { throw new WBXCONexception(e); } return new WBXCONuser.WBXCONUID(documentGetTextContentByTagName(executeQueued(params), "userID")); }
From source file:Main.java
/** * 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./*from w ww .ja v a 2 s. co m*/ * <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 + " (" + node.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(); } } } }