From org.w3c.dom.Document to XML file

Good morning to all! (morning here, in Barcelona).
I have a problem and I don't know how to look for a solution (which google query to do, which class to study in the java api...).
I parse a XML file into a Document with DOM, then make some modifications in its nodes... but how do I transform this modified information into a new XML file? is there any "toString" method for all the XML tree represented by the Document?
thanks a lot!

Output the DOM document with a Transformer
TransformerFactory tFactory =
           TransformerFactory.newInstance();
            Transformer transformer = tFactory.newTransformer();
            DOMSource source = new DOMSource(document);
            StreamResult result = new StreamResult(new File("C:/output/output.xml"));
            transformer.transform(source, result);

Similar Messages

  • How to parse & update org.w3c.dom.Document

    Hi,
    I have a org.w3c.dom.Document "w3Doc" object which is converted to org.jdom.Document object using DOMBuilder().build(w3Doc) method.
    Now the problem which I'm facing is that this org.w3c.dom.Document object contains an illegal xml character & when DOMBuilder().build() method tries to create JDOM doc/tree from org.w3c.dom.Document it raises IllegalDataException & the application errors up.
    Now, I want to parse org.w3c.dom.Document "w3Doc" object & check for illegal xml character in the w3Doc & remove this character.
    Can anyone help me out in finding which parser should I use to read w3Doc & update the doc(by removing the illegal data).
    Thanks in advance,

    Normally a Document is the output of a parser, not the input to one. And all the parsers I know of will not allow invalid XML characters to pass. So it must be that you're creating Text nodes in your program that include invalid XML characters and adding them to a Document. (I'm surprised that the DOM implementation allows you to do that.)
    So you should just stop doing that, instead of trying to find something to clean up the mess after the fact. The XML Recommendation, in section 2.2, tells you what characters are valid in XML. You can find it here:
    http://www.w3.org/TR/REC-xml/

  • Org.w3c.dom.Document object in oSB

    Hi,
    I am getting a org.w3c.dom.Document type object in return from a Java Callout. When I try to access this object in OSB, I get a reference to some Java content. Can anybody tell me how to handle this object so that i can access its elements

    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/userguide/pojo.html#wp1039298
    "The input and return types for Java callouts are not restricted. However, any return types other than primitives, Strings, or XmlObjects can *only be passed (unmodified) to other Java callouts*."
    It means you can't access Document object elements in OSB proxy flow. You can only pass them to another Java callout. To overcome this easily, you can change the return type from org.w3c.dom.Document to XmlObject.

  • Org.w3c.dom.Document to/from String ?

    I need to be able to parse (once) an XML string, and then pass the parsed object around to/from different objects.
    I tried to use org.w3c.dom.Document,
    generated by javax.xml.parsers.DocumentBuilder .
    HOWEVER - I don't see any way to parse an xml String!
    The doc-builder parse() method accepts either a file/url, or an InputStream.
    When I tried to use the StringBufferInputStream I found-out it is deprecated, and that I should use StringReader.
    BUT I cannot parse using StringReader ! (the method parse() doesn't work with it)
    Is there anyway to parse a String to create a Document ?
    ========================================================
    And that's only HALF my problem:
    I did parse an input file into a Document, to experiment a little.
    I then wanted to convert it to an XML String - but couldn't.
    How do I get the xml String from a Document ?
    I cannot: How do I save it to a file ?
    I must say that under .NET both tasks are TRIVIAL:
    XmlDocument.LoadXML()
    XmlDocument.OuterXml
    Thanks
    Meir

    The doc-builder parse() method accepts either a file/url, or an InputStream.This isn't true. Look it up again. There are overridden versions of parse() that use File, InputSource, InputStream, or String. The String one isn't what you want, because the String it takes is a URL pointing to the XML and not the XML itself. The File one doesn't work for you because you don't have a file, and you've already said why the InputStream one doesn't work for you.
    So that leaves the version that takes an InputSource. So, what is an InputSource anyway? You could look it up just by clicking on the link in the API docs...

  • Problem casting org.w3c.dom.Document to oracle.xml.parser.v2.XMLDocument

    I have the following problem:
    I get my xml-documents as an XMLType from the database and want to compare these using the supplied Oracle class oracle.xml.differ.XMLDiff (i use the java version supplied with Oracle 9i r2).
    XMLType.getDOM() returns the xml-document as a org.w3c.dom.Document,
    what i need for oracle.xml.differ.XMLDiff is a oracle.xml.parser.v2.XMLDocument.
    How can i cast/convert between these two formats?
    thanks!
    p.s. cross-posting with Re: Casting/Converting XMLType to XMLDocument? (but i think this forum is more relevant).

    Hi,
    thanks for the suggestion: i have written the code shown below. It results in a casting error.
    As far as i know, i don't use a oracle.xdb.dom.XDBDocument, i only use a oracle.xdb.XMLType as the input parameter for my conversion-method:
    any new suggestions ???
    p.s. the second method which is commented does work, but is a bit verbose.
       private static oracle.xml.parser.v2.XMLDocument convert2XMLDocument(XMLType xml) {
         // simple version (should work according to tech. doc. 9i r2/ 10g r1 database)
         oracle.xml.parser.v2.XMLDocument doc = null;
         try {
            // n.b. probleem is dat XMLType.getDOM() een w3c.Document object teruggeeft ipv een oracle.XMLDocument.
            System.out.println("convert2XMLDocument(): casting w3c.Document naar oracle.XMLDocument.");
            doc = (oracle.xml.parser.v2.XMLDocument) xml.getDOM(); // public org.w3c.dom.Document getDOM()
            System.out.println("convert2XMLDocument(): done casting w3c.Document naar oracle.XMLDocument.");
         catch (Exception e) {
            e.printStackTrace(System.out);
        return doc;
       private static XMLDocument convert2XMLDocument(XMLType xml) {
         // complex version: works ok !!!
         XMLDocument doc = null;
         try{
            DOMParser parser  = new DOMParser();
            parser.setValidationMode(oracle.xml.parser.v2.XMLParser.NONVALIDATING);
            parser.setPreserveWhitespace (true);   
            parser.parse(new StringReader(xml.getStringVal()));
            doc = parser.getDocument();
        catch ( XMLParseException e ) {
          e.printStackTrace(System.out);
        catch ( SQLException e ) {
          e.printStackTrace(System.out);
        catch ( Exception e ) {
          e.printStackTrace(System.out);
        return doc;
    convert2XMLDocument(): casting w3c.Document naar oracle.XMLDocument.
        java.lang.ClassCastException: oracle.xdb.dom.XDBDocument
         at pnb.bdb.xml.testJDBC.convert2XMLDocument(testJDBC.java:305)
         at pnb.bdb.xml.testJDBC.main(testJDBC.java:187)

  • Save org.w3c.dom.Document to File

    Hi all,
    I can save org.jdom.Document to a file but I don't know how do it with org.w3c.dom.Document.
    My code Java can convert org.w3c.dom.Document to org.jdom.Document but I want to save org.w3c.dom.Document direct.
    thanks a lot
    best regards
    dsea

    As an xml file?
    http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JAXPXSLT4.html

  • Security Exception in trying to get a org.w3c.dom.Document

    Hi,
    I'm trying to get an org.w3c.dom.Document using the following code----
         String configFileName = "discoveryconsts.xml";
              DocumentBuilder db = null;
              Document xmlDocument = null;
              DocumentBuilderFactory dbf = null;
         dbf = DocumentBuilderFactory.newInstance();
    System.out.println("The DocumentBuilderFactory is :" + dbf);     
    //the exception happens here,while building the DocumentBuilder.
         db = dbf.newDocumentBuilder();
    System.out.println("The DocumentBuilder is :" + db);          try
         xmlDocument = db.parse(configFileName);
    System.out.println("The Document Builder is :" + db);
    catch(Exception e)
         System.out.println("The Exception is :"+ e);
    System.out.println("The XML Document is :" + xmlDocument);
    The error obtained is in the ---
    java.lang.SecurityException: sealing violation
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:234)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
    at org.apache.xerces.jaxp.DocumentBuilderImpl.<init>(DocumentBuilderImpl.java:98)
    atorg.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(DocumentBuilderFactoryImpl.java:87)
    at Prototype.ChangingDiscConstsFile.discoveryConstants(ChangingDiscConstsFile.java:36)
    at Prototype.ChangingDiscConstsFile.main(ChangingDiscConstsFile.java:74)
    This error is obtained at runtime(ie.The file gets compiled).
    Kindly let me know the reason for the exception.
    regards,
    Karan.

    Hello Satya,
    Have you checked if the cross domain security between the domain WLS 10.3.5 and the backend server is enabled?
    Trust between domains is established so that principals in a Subject from one WebLogic domain can make calls in another domain. In previous releases of WebLogic Server, there was only one type of domain trust that is now referred to as Global Trust. WebLogic Server now supports a type of domain trust that is referred to as Cross Domain Security. The following sections explain how to configure each domain trust type:
    Enabling Cross Domain Security Between WebLogic Server Domains
    Enabling Global Trust
    http://docs.oracle.com/cd/E21764_01/web.1111/e13707/domain.htm#i1176046

  • Org.w3c.dom.Document -- text

    Hello.
    I have parsed org.w3c.dom.Document.
    Is here a library that can print it to a xml file?
    Secondly I wish print it as .html, so output should a bit differ from standard .xml output.

    Yes. In both cases you use a Transformer. (That's in package javax.xml.transform.) You get it via one of the TransformerFactory.newTransformer() methods. To do a straight copy you use the method with no parameters, which does an "identity transformation". To transform to HTML, you use the method with an XSLT for its parameter.

  • Org.w3c.dom.Document skip a lines between Elements

    Hello,
    I'm generating an XML file from an org.w3c.dom.Document and I'd like to know how can I manually skip a line in the generated xml file.
    <root>
    <myElement>...</myElement>
    skip a line here !
    <myElement>...</myElement>
    </root>
    Thanks,
    Tex

    It's hard to skip half a line, so I don't understand what that last comment means.
    Anyway, with the code you have there your document should end like this:
    <myElement>...</myElement>
    </root>That's because you added a newline as the last child of your root element. If you wanted to add a newline where your original post said you wanted to add a newline, then adding one at the end isn't the right thing to do.

  • How to create org.w3c.dom.Document.

    Hi,
    I have my complete xml file in a String variable like
    String strXml = " <?xml version="1.0"?>
    <report>
    <name>testReport & report
    <duration>Jan to Feb</duration>
    <reportId>1</reportId>
    </report> "
    I need to create a "org.w3c.dom.Document" object from the above "strXml" variable.
    Thanks in advance for your answers,
    Sha S.

    this is the code snippet that would answer u r question
    import org.apache.xml.serialize.XMLSerializer;
    import org.w3c.dom.Attr;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.NamedNodeMap;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import org.w3c.dom.Text;
    import org.w3c.dom.ProcessingInstruction;
    import org.xml.sax.InputSource;
    import com.exel.businessobjects.*;
    StringReader srxml = new StringReader(xmlcontent);
    Reader rxml     = (Reader)srxml;
    InputSource isxml = new InputSource(rxml);
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    Document doc = db.parse(isxml);

  • How to put org.w3c.dom.Document into String

    Hello!
    I have some sample xml file with xml schema (xsd file). After parsing this sample file into org.w3c.dom.Document I would like to put it into the string and print out for test purpose only. But I don't know how to do it.
    I would like to print something like
    <somebody>
    <first>First somenthing</first>
    <second>Second something</second>
    </somebody>
    Thanks for your advices.

    The function you have specified works fine and gives back the string from DOM object.But it ruins all the formatting associated with the XML (like new line character)
    Is there any way to overcome it?
    Currently if i have a xml as
    <student>
    <firstname>
    </firstname>
    </student>
    The output of the code u have sent strips off the new line characters and returns everything in a single line as below:
    <student> <firstname> </firstname> </student>
    Thanks for any help associated with above problem.

  • XDK 10.1.0.2.0 NT XMLType and org.w3c.dom.Document problem/bug?

    Hi Chaps,
    I have Oracle 11g1 server side and am using the Oracle XDK 10.1.0.2.0 for Windows client side with Sun Java JDK 6 (1.6.0_06-b02).
    (I couldnt find an XDK for 11g1???)
    I have a table in my database that has an XMLType, its a very simple table -
    CREATE TABLE hcr_xml_test
    RRN VARCHAR(24) PRIMARY KEY,
    ClipID VARCHAR2(27),
    Lodgement XMLType
    XMLTYPE COLUMN Lodgement
    STORE AS OBJECT RELATIONAL
    ELEMENT "/www.hcrregister.com/RequestServices/Messages/ConditionReportCreateRequest_1.xsd#ConditionReportCreateRequest_1"
    Thats all fine, however with the XDK I am trying to construct an XMLType for use with JDBC from a valid org.w3c.dom.Document so that I can insert a row into my table. My code looks like this -
    XMLType xml = new XMLType(realCon, doc);
    stmt = (OraclePreparedStatement) realCon.prepareStatement(sql);
    stmt.setString(1, id.getRRN());
    stmt.setString(2, id.getCenteraClipID());
    stmt.setObject(3, xml);
    stmt.execute();
    doc is a org.w3c.dom.Document
    realCon is a java.sql.Connection
    That code throws a SQLException at the line "stmt.setObject(3, xml);" -
    java.sql.SQLException: Fail to convert to internal representation
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:229)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:403)
    at oracle.sql.OPAQUE.<init>(OPAQUE.java:85)
    at oracle.xdb.XMLType.toDatum(XMLType.java:480)
    at oracle.jdbc.driver.OraclePreparedStatement.setORADataInternal(OraclePreparedStatement.java:7437)
    at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:8158)
    at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:8149)
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.setObject(OraclePreparedStatementWrapper.java:229)
    at uk.co.landmarkinfo.registers.datawarehouse.tools.oracle.lodgementloader.DocumentProcessor.run(DocumentProcessor.java:232)
    Inspecting the exception I can see that the vendorCode is 17059.
    If I use "XMLType xml = XMLType.createXML(realCon, doc);" then xml is null instead of throwing a SQLException, so something isnt working here...
    However, if I serialize my Document to a String first and give that String to either the XMLType Constructor or XMLType.createXML() then it all works fine -
    /////TEMP
    Transformer transformer = saxTransformerFactory.newTransformer();
    transformer.setOutputProperty("omit-xml-declaration", "no");
    transformer.setOutputProperty("indent", "yes");
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    transformer.transform(new DOMSource(doc), new StreamResult(baos));
    XMLType stringXML = new XMLType(realCon, new String(baos.toByteArray()));
    ////END TEMP
    stmt = (OraclePreparedStatement) realCon.prepareStatement(sql);
    stmt.setString(1, id.getRRN());
    stmt.setString(2, id.getCenteraClipID());
    stmt.setObject(3, stringXML);
    stmt.execute();
    But why do I need to serialize to a String first??? Looking at the javadoc I dont think I should have to do this. So is there a problem in Oracles XDB handling of Document or have I missed something?

    Anyone has any idea? Please help!!!
    xu

  • How to convert clobDomain to org.w3c.dom.Document

    Hi
    We have store the xml data into oracle database as clobDomain.We are reading the same data from db and want to convert it into org.w3c.dom.Document type.We used the method getXMLContentNode() but its doesn't help us.See the below code.
    ClobDomain pedigreeXML = (ClobDomain) pedigreeDocumentRow.getAttribute("PedigreeDocument");
    DocumentBuilderFactory docBuildFactory= DocumentBuilderFactory.newInstance();
    Document containerDoc = docBuildFactory.newDocumentBuilder().newDocument();
    System.out.println(containerDoc.toString()); // this sop statement printing the xml fine
    Node node= pedigreeXML.getXMLContentNode(containerDoc);
    System.out.println(node); // this sop statement is printing data as "oracle.xml.parser.v2.XMLCDATA@1de6ded"
    Please let me know can we convert clobDomain to Document type.
    Thanks
    Baji

    Baji,
    it would help if you give the jdev version you are working on...
    I don't see a problem with the output you get from System.out.println(node); // this sop statement is printing data as "oracle.xml.parser.v2.XMLCDATA@1de6ded"as it only prints you the address of the node, but not the content. Try
    String str = node.getTextContent();and check if this get you the content.
    Timo

  • Covert org.jdom.Document to org.w3c.dom.Document

    Hello,
    How would I convert org.jdom.Document to org.w3c.dom.Document??
    I'm creating org.jdom.Document from the servlet that reads from the database, which gets output like following.
    // doc is org.jdom.Document
    Document doc = new Document( root );
    reportName = new Element( "REPORT_NAME" );
    root.addContent( reportName );
    reportName.setText( "Current Account Balance" );
    // skip...
    XMLOutputter outputter = new XMLOutputter(" ", true, "UTF-8");
    outputter.output(doc, out);
    And in my caller servlet, I read from the previous servlet using URL and parse it, trying to get Document, but it
    InputSource xmlSource = new InputSource( url.openStream());
    //Use a DOM Parser (org.apache.xerces.parsers.DOMParser)
    DOMParser parser = new DOMParser();
    parser.parse( xmlSource );
    Document doc = parser.getDocument();
    // and I do transformation.
    DOMSource inXML = new DOMSource( doc );
    StreamResult outXML = new StreamResult( out );
    transformer.transform( inXML, outXML )
    I'd like to skip passing around XML and share the same Document object so that I don't have parse it again...
    Help!

    Convert jdom document to dom document with class DOMOutputter.
    org.jdom.output.DOMOutputter domOut=new DOMOutputter();
    org.w3c.dom.Document domDocument=domOut.output(org.jdom.Document jdomDocument);

  • Org.w3c.dom.Document.getElementById() not working for me

    I am having trouble using the .getelementById for the org.w3c.dom.Document class. I have devised a workaround, but was wondering what I have been doing wrong in the first place.
    My XML file contains, in part, a bunch of "sections" as outlined below:
    <section id="uniqueString">
       <icon ... />
       <window ... />
    </section>I want to get a "section" whose ID is String s . I tried using .getElementById()
    // document is of class org.w3c.dom.Document, and has parsed in an XML file
    // String s = "uniqueString"
    Element e = document.getElementById(s);However, e is null every time I run this. I have tried it with different Strings which look for other XML tags, but it always is null . I have devised a workaround:
    NodeList sections = document.getElementsByTagName("section");
    for (int i = 0; i < sections.getLength(); ++i) {
         if (((Element) sections.item(i)).getAttribute("id").equals(s)) {
              e = (Element) sections.item(i);
    // Do something with eSo the functionality I need is there; however, I was just wondering if anybody sees what I'm doing wrong in the attempt to use getElementById(). It's not essential that I find out, however it would improve my program's readability, probably improve the efficiency, and help me understand whatever concept I seem to be missing. I have been all through the javadoc online and I can't seem to figure out what's up with it.

    This is a user error. If it is any consolation, it is not uncommon.
    By "Id" this method looks for the attribute defined in the schema for this kind of XML file as an ID. It may or may not be "id".
    The JavaDoc for this method says:
    Attributes with the name "ID" or "id" are not of type ID unless so defined.
    So, you could have an attribute "programnum" defined as an ID in the schema, and find a value of that attribute with the getElementById() method.
    Dave Patterson

Maybe you are looking for

  • IPod say's "Do Not Disconnect" but still not recognized. Please help!!

    Hi everyone. Ok here's my situation. Im using a MacBook Pro (Mac OS X Lion 10.7.5) iTunes 11.4 (64Bit) iPod 4th Gen. (White 20GB 'Click-Wheel') After doing a system restore on my ancient dinosaur ipod 4th gen. (the white 20GB 'Click Wheel') and 'upgr

  • Mixture of tunes

    I recently had to change my hard drive in my Powerbook. I had both my iMac and my Powerbook backed up. I transferred the files from my iMac to my PowerBook so I had the music the same in both computers. I had some music in my previous hard drive that

  • How do I jump to the top of the email list on an iPad?

    On the iPhone I can tap the status bar to jump to the top of the list of my unified inbox. But on the iPad that doesn't work. Tapping the center or right of the status bar in iPad email does nothing, tapping on the left side near the Wi-Fi symbol rev

  • How to transfer files from Creative Zen Touch to Creative Vision:

    Is there a way to transfer my music files from my Creative Zen Touch to my Vision:M?If so, can someone tell me how to do this. ?I know this has probably been asked before but I am new on this message board and am in need of assistance. It would be gr

  • Duplicating contacts

    Hi Have set up iCloud on my iPhone4, iPad2, iMac, and Mac Air. Now have each contact appearing 3 times in mu iPhone contacts. What have I done wrong?