Java examples for XML:DOM Element
rename XML Element
/**// w w w . j a v a2s .c om * Copyright 2012 Sven Ewald * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ //package com.java2s; import java.util.LinkedList; import java.util.List; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class Main { /** * @param element * @param newName * @return a new Element instance with desired name and content. */ public static Element renameElement(final Element element, final String newName) { Document document = element.getOwnerDocument(); // Element newElement = document.createElement(newName); final Element newElement = createElement(document, newName); NodeList nodeList = element.getChildNodes(); List<Node> toBeMoved = new LinkedList<Node>(); for (int i = 0; i < nodeList.getLength(); ++i) { toBeMoved.add(nodeList.item(i)); } for (Node e : toBeMoved) { element.removeChild(e); newElement.appendChild(e); } return newElement; } private static Element createElement(final Document document, final String elementName) { final String prefix = getPrefixOfQName(elementName);// .replaceAll("(:.*)|([^:])*", ""); final String namespaceURI = prefix.isEmpty() ? null : document .lookupNamespaceURI(prefix); final Element element; if (namespaceURI == null) { element = document.createElement(elementName); } else { element = document.createElementNS(namespaceURI, elementName); } return element; } /** * @param elementName * @return */ private static String getPrefixOfQName(final String elementName) { if (elementName.contains(":")) { return elementName.replaceAll(":.*", ""); } return ""; } }