Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / August 2007

Tip: Looking for answers? Try searching our database.

Java & XML-DOM. Change the tag name of an Element object.

Thread view: 
David  Portabella - 29 Jul 2007 21:52 GMT
Using the Java package org.w3c.dom,
I have an Element object.
How can I change the tagName of a given Element?

There is the method Element.getTagName(),
but I did not find the method Element.setTagName() or equivalent.

One solution could be to create a new Element, with the new name, move
all the children and attributes from the old element to the new one,
and to replace the new element for the old one in the tree.

Is there a simpler and more natural solution?
some xml util package (that works with org.w3c.dom)?
Mike  Schilling - 30 Jul 2007 19:17 GMT
> Using the Java package org.w3c.dom,
> I have an Element object.
[quoted text clipped - 9 lines]
> Is there a simpler and more natural solution?
> some xml util package (that works with org.w3c.dom)?

Same answer as last time you asked.
Arne Vajhøj - 02 Aug 2007 22:00 GMT
David Portabella wrote:
> Using the Java package org.w3c.dom,
> I have an Element object.
[quoted text clipped - 9 lines]
> Is there a simpler and more natural solution?
> some xml util package (that works with org.w3c.dom)?

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.PrintStream;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.XMLSerializer;
import org.apache.xpath.XPathAPI;
import org.w3c.dom.Document;

public class RenameNode {
    private static void print(PrintStream out, Document doc) throws
IOException {
        OutputFormat fmt = new OutputFormat();
        fmt.setIndenting(true);
        XMLSerializer ser = new XMLSerializer(out, fmt);
        ser.serialize(doc);
    }
    public static void main(String[] args) throws Exception {
        String xml = "<doc><a>1</a><b>22</b><c>333</c></doc>";
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(new ByteArrayInputStream(xml.getBytes()));
        print(System.out, doc);

doc.renameNode(XPathAPI.selectSingleNode(doc.getDocumentElement(),
"/doc/b"), null, "b2");
        print(System.out, doc);
    }
}

outputs:

<?xml version="1.0" encoding="UTF-8"?>
<doc>
    <a>1</a>
    <b>22</b>
    <c>333</c>
</doc>
<?xml version="1.0" encoding="UTF-8"?>
<doc>
    <a>1</a>
    <b2>22</b2>
    <c>333</c>
</doc>

Maybe you can use that.

Arne
David  Portabella - 14 Aug 2007 18:31 GMT
On Aug 2, 11:00 pm, Arne Vajh?j <a...@vajhoej.dk> wrote:
> Arne

Node Document.renameNode(Node n, String namespaceURI, String
qualifiedName)
Great!!

Many thanks,
DAvid


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.