List of usage examples for org.w3c.dom Element getParentNode
public Node getParentNode();
From source file:com.cloud.agent.api.storage.OVFHelper.java
public void rewriteOVFFile(final String origOvfFilePath, final String newOvfFilePath, final String diskName) { try {//w w w .ja v a 2 s. c o m final Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder() .parse(new File(origOvfFilePath)); NodeList disks = doc.getElementsByTagName("Disk"); NodeList files = doc.getElementsByTagName("File"); NodeList items = doc.getElementsByTagName("Item"); String keepfile = null; List<Element> toremove = new ArrayList<Element>(); for (int j = 0; j < files.getLength(); j++) { Element file = (Element) files.item(j); String href = file.getAttribute("ovf:href"); if (diskName.equals(href)) { keepfile = file.getAttribute("ovf:id"); } else { toremove.add(file); } } String keepdisk = null; for (int i = 0; i < disks.getLength(); i++) { Element disk = (Element) disks.item(i); String fileRef = disk.getAttribute("ovf:fileRef"); if (keepfile == null) { s_logger.info("FATAL: OVA format error"); } else if (keepfile.equals(fileRef)) { keepdisk = disk.getAttribute("ovf:diskId"); } else { toremove.add(disk); } } for (int k = 0; k < items.getLength(); k++) { Element item = (Element) items.item(k); NodeList cn = item.getChildNodes(); for (int l = 0; l < cn.getLength(); l++) { if (cn.item(l) instanceof Element) { Element el = (Element) cn.item(l); if ("rasd:HostResource".equals(el.getNodeName()) && !(el.getTextContent().contains("ovf:/file/" + keepdisk) || el.getTextContent().contains("ovf:/disk/" + keepdisk))) { toremove.add(item); break; } } } } for (Element rme : toremove) { if (rme.getParentNode() != null) { rme.getParentNode().removeChild(rme); } } final StringWriter writer = new StringWriter(); final StreamResult result = new StreamResult(writer); final TransformerFactory tf = TransformerFactory.newInstance(); final Transformer transformer = tf.newTransformer(); final DOMSource domSource = new DOMSource(doc); transformer.transform(domSource, result); PrintWriter outfile = new PrintWriter(newOvfFilePath); outfile.write(writer.toString()); outfile.close(); } catch (SAXException | IOException | ParserConfigurationException | TransformerException e) { s_logger.info("Unexpected exception caught while removing network elements from OVF:" + e.getMessage(), e); throw new CloudRuntimeException(e); } }
From source file:Main.java
protected static String nodeToString(Node node, Set<String> parentPrefixes, String namespaceURI) throws Exception { StringBuilder b = new StringBuilder(); if (node == null) { return ""; }/*from w ww . j av a 2 s.c om*/ if (node instanceof Element) { Element element = (Element) node; b.append("<"); b.append(element.getNodeName()); Map<String, String> thisLevelPrefixes = new HashMap(); if (element.getPrefix() != null && !parentPrefixes.contains(element.getPrefix())) { thisLevelPrefixes.put(element.getPrefix(), element.getNamespaceURI()); } if (element.hasAttributes()) { NamedNodeMap map = element.getAttributes(); for (int i = 0; i < map.getLength(); i++) { Node attr = map.item(i); if (attr.getNodeName().startsWith("xmlns")) continue; if (attr.getPrefix() != null && !parentPrefixes.contains(attr.getPrefix())) { thisLevelPrefixes.put(attr.getPrefix(), element.getNamespaceURI()); } b.append(" "); b.append(attr.getNodeName()); b.append("=\""); b.append(attr.getNodeValue()); b.append("\""); } } if (namespaceURI != null && !thisLevelPrefixes.containsValue(namespaceURI) && !namespaceURI.equals(element.getParentNode().getNamespaceURI())) { b.append(" xmlns=\"").append(namespaceURI).append("\""); } for (Map.Entry<String, String> entry : thisLevelPrefixes.entrySet()) { b.append(" xmlns:").append(entry.getKey()).append("=\"").append(entry.getValue()).append("\""); parentPrefixes.add(entry.getKey()); } NodeList children = element.getChildNodes(); boolean hasOnlyAttributes = true; for (int i = 0; i < children.getLength(); i++) { Node child = children.item(i); if (child.getNodeType() != Node.ATTRIBUTE_NODE) { hasOnlyAttributes = false; break; } } if (!hasOnlyAttributes) { b.append(">"); for (int i = 0; i < children.getLength(); i++) { b.append(nodeToString(children.item(i), parentPrefixes, children.item(i).getNamespaceURI())); } b.append("</"); b.append(element.getNodeName()); b.append(">"); } else { b.append("/>"); } for (String thisLevelPrefix : thisLevelPrefixes.keySet()) { parentPrefixes.remove(thisLevelPrefix); } } else if (node.getNodeValue() != null) { b.append(encodeText(node, node.getNodeValue())); } return b.toString(); }
From source file:de.elbe5.base.data.XmlData.java
public Element replaceNode(Element oldNode, String name) { Element newNode = doc.createElement(name); oldNode.getParentNode().replaceChild(newNode, oldNode); return newNode; }
From source file:it.unibas.spicy.persistence.xml.operators.ExportXSD.java
public void visitAttributeNode(AttributeNode node) { if (!node.isVirtual()) { Element elementTag = document.createElement(ExportXSD.PREFIX + "element"); checkLeafNode(node, elementTag); stackOfElements.peek().appendChild(elementTag); checkOccurs(node, elementTag);//from www . ja v a2s . co m if (logger.isDebugEnabled()) logger.debug(" attribute of: " + node.getLabel()); } else { Element fatherElement = this.stackOfElements.peek(); Element grandFatherElement = (Element) fatherElement.getParentNode(); grandFatherElement.setAttribute("mixed", "true"); } }
From source file:de.elbe5.base.data.XmlData.java
public Text replaceWithText(Element oldNode, String text) { Text newNode = doc.createTextNode(StringUtil.toXml(text)); oldNode.getParentNode().replaceChild(newNode, oldNode); return newNode; }
From source file:org.gvnix.web.menu.roo.addon.MenuOperationsImpl.java
/** * Attempts to locate a menu item and remove it. * /*w w w .j a va 2s.c om*/ * @param menuCategoryName the identifier for the menu category (required) * @param menuItemName the menu item identifier (required) * @param idPrefix the prefix to be used for this menu item (optional, * MenuOperations.DEFAULT_MENU_ITEM_PREFIX is default) */ public void cleanUpMenuItem(JavaSymbolName menuCategoryName, JavaSymbolName menuItemName, String idPrefix, LogicalPath logicalPath) { waitToReferences(); // TODO Added logicalPath param to method: related methods modification // required ? Validate.notNull(menuCategoryName, "Menu category identifier required"); Validate.notNull(menuItemName, "Menu item id required"); if (idPrefix == null || idPrefix.length() == 0) { idPrefix = DEFAULT_MENU_ITEM_PREFIX; } Document document = operations.getMenuDocument(); StringBuilder categoryId = new StringBuilder(MenuEntryOperations.CATEGORY_MENU_ITEM_PREFIX); categoryId.append(menuCategoryName.getSymbolName().toLowerCase()); StringBuilder itemId = new StringBuilder(idPrefix); itemId.append(menuCategoryName.getSymbolName().toLowerCase()).append("_") .append(menuItemName.getSymbolName().toLowerCase()); // find menu item under this category if exists Element element = XmlUtils.findFirstElement("//menu-item[@id='".concat(categoryId.toString()) .concat("']//menu-item[@id='").concat(itemId.toString()).concat("']"), document.getDocumentElement()); if (element == null) { return; } else { element.getParentNode().removeChild(element); } operations.writeXMLConfigIfNeeded(document); }
From source file:com.enonic.esl.xml.XMLTool.java
public static void replaceElement(Element oldElem, Element newElem) { Document doc = oldElem.getOwnerDocument(); Node importedNew = doc.importNode(newElem, true); oldElem.getParentNode().replaceChild(importedNew, oldElem); }
From source file:org.alloy.metal.xml.merge.ImportProcessor.java
public List<ResourceInputStream> extract(List<ResourceInputStream> sources) throws MergeException { try {// w w w . ja v a2 s.co m DynamicResourceIterator resourceList = new DynamicResourceIterator(); resourceList.addAll(sources); while (resourceList.hasNext()) { ResourceInputStream myStream = resourceList.nextResource(); Document doc = builder.parse(myStream); NodeList nodeList = (NodeList) xPath.evaluate(IMPORT_PATH, doc, XPathConstants.NODESET); int length = nodeList.getLength(); for (int j = 0; j < length; j++) { Element element = (Element) nodeList.item(j); Resource resource = loader.getResource(element.getAttribute("resource")); ResourceInputStream ris = new ResourceInputStream(resource.getInputStream(), resource.getURL().toString()); resourceList.addEmbeddedResource(ris); element.getParentNode().removeChild(element); } if (length > 0) { TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer xmlTransformer = tFactory.newTransformer(); xmlTransformer.setOutputProperty(OutputKeys.VERSION, "1.0"); xmlTransformer.setOutputProperty(OutputKeys.ENCODING, _String.CHARACTER_ENCODING.toString()); xmlTransformer.setOutputProperty(OutputKeys.METHOD, "xml"); xmlTransformer.setOutputProperty(OutputKeys.INDENT, "yes"); DOMSource source = new DOMSource(doc); ByteArrayOutputStream baos = new ByteArrayOutputStream(); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(baos)); StreamResult result = new StreamResult(writer); xmlTransformer.transform(source, result); byte[] itemArray = baos.toByteArray(); resourceList.set(resourceList.getPosition() - 1, new ResourceInputStream( new ByteArrayInputStream(itemArray), null, myStream.getNames())); } else { myStream.reset(); } } return resourceList; } catch (Exception e) { throw new MergeException(e); } }
From source file:com.photon.phresco.impl.ConfigManagerImpl.java
@Override public void deleteEnvironment(String envName) throws ConfigurationException { String xpath = getXpathEnv(envName).toString(); Element envNode = (Element) getNode(xpath); envNode.getParentNode().removeChild(envNode); try {/*from ww w . j ava 2 s . com*/ writeXml(new FileOutputStream(configFile)); } catch (FileNotFoundException e) { throw new ConfigurationException(e); } }
From source file:DOMWriter.java
private String getNamespaceURI(String prefix, Element element, Node stopNode) { Node parent = element.getParentNode(); String nsURI = element.getAttribute("xmlns:" + prefix); if (nsURI.length() == 0 && element != stopNode && parent instanceof Element) return getNamespaceURI(prefix, (Element) parent, stopNode); return (nsURI.length() > 0 ? nsURI : null); }