The Java Developers Almanac 1.4


Order this book from Amazon.

   
Home > List of Packages > javax.xml.parsers  [8 examples] > DOM  [4 examples]

e512. Converting an XML Fragment into a DOM Fragment

This example demonstrates how to parse an XML string fragment into a set of nodes suitable for insertion into a DOM document.
    // Parses a string containing XML and returns a DocumentFragment
    // containing the nodes of the parsed XML.
    public static DocumentFragment parseXml(Document doc, String fragment) {
        // Wrap the fragment in an arbitrary element
        fragment = "<fragment>"+fragment+"</fragment>";
        try {
            // Create a DOM builder and parse the fragment
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            Document d = factory.newDocumentBuilder().parse(
                new InputSource(new StringReader(fragment)));
    
            // Import the nodes of the new document into doc so that they
            // will be compatible with doc
            Node node = doc.importNode(d.getDocumentElement(), true);
    
            // Create the document fragment node to hold the new nodes
            DocumentFragment docfrag = doc.createDocumentFragment();
    
            // Move the nodes into the fragment
            while (node.hasChildNodes()) {
                docfrag.appendChild(node.removeChild(node.getFirstChild()));
            }
    
            // Return the fragment
            return docfrag;
        } catch (SAXException e) {
            // A parsing error occurred; the xml input is not valid
        } catch (ParserConfigurationException e) {
        } catch (IOException e) {
        }
        return null;
    }
Here's an example that uses the method:
    // Obtain an XML document; this method is implemented in
    // e510 The Quintessential Program to Create a DOM Document from an XML File
    Document doc = parseXmlFile("infilename.xml", false);
    
    // Create a fragment
    DocumentFragment frag = parseXml(doc, "hello <b>joe</b>");
    
    // Append the new fragment to the end of the root element
    Element element = doc.getDocumentElement();
    element.appendChild(frag);
    

 Related Examples
e510. The Quintessential Program to Create a DOM Document from an XML File
e511. Creating an Empty DOM Document
e513. Handling Errors While Parsing an XML File

See also: DOM Parsing Options    SAX   


© 2002 Addison-Wesley.