Java 怎么重命名XML元素

2019年7月26日23:26:57Java 怎么重命名XML元素已关闭评论 531 1169字阅读3分53秒

1.简介

Java 怎么重命名XML元素?——请看下文。

2.示例代码

/**
 * 版权所有 编程十万个怎么办(www.tah1986.com)
 */



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 {
    
    public static Element renameElement(final Element element,
            final String newName) {
        Document document = element.getOwnerDocument();
        
        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);
        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;
    }

    
    private static String getPrefixOfQName(final String elementName) {
        if (elementName.contains(":")) {
            return elementName.replaceAll(":.*", "");
        }
        return "";
    }
}

 
继续阅读
编程十万个怎么办