SSISO Community

시소당

Converting an XML Fragment into a DOM Fragment

이  예제는  적당한  마디의  XML  끈  파편을  분석하여      DOM문서로  삽입하는  예제

//  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);
        

857 view

4.0 stars