Save This Page
Home » Xerces-J-src.2.9.1 » dom » serialize » [javadoc | source]
    1   /*
    2    * The Apache Software License, Version 1.1
    3    *
    4    *
    5    * Copyright (c) 2000 The Apache Software Foundation.  All rights 
    6    * reserved.
    7    *
    8    * Redistribution and use in source and binary forms, with or without
    9    * modification, are permitted provided that the following conditions
   10    * are met:
   11    *
   12    * 1. Redistributions of source code must retain the above copyright
   13    *    notice, this list of conditions and the following disclaimer. 
   14    *
   15    * 2. Redistributions in binary form must reproduce the above copyright
   16    *    notice, this list of conditions and the following disclaimer in
   17    *    the documentation and/or other materials provided with the
   18    *    distribution.
   19    *
   20    * 3. The end-user documentation included with the redistribution,
   21    *    if any, must include the following acknowledgment:  
   22    *       "This product includes software developed by the
   23    *        Apache Software Foundation (http://www.apache.org/)."
   24    *    Alternately, this acknowledgment may appear in the software itself,
   25    *    if and wherever such third-party acknowledgments normally appear.
   26    *
   27    * 4. The names "Xerces" and "Apache Software Foundation" must
   28    *    not be used to endorse or promote products derived from this
   29    *    software without prior written permission. For written 
   30    *    permission, please contact apache@apache.org.
   31    *
   32    * 5. Products derived from this software may not be called "Apache",
   33    *    nor may "Apache" appear in their name, without prior written
   34    *    permission of the Apache Software Foundation.
   35    *
   36    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   37    * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   38    * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   39    * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   40    * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   41    * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   42    * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   43    * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   44    * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   45    * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   46    * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   47    * SUCH DAMAGE.
   48    * ====================================================================
   49    *
   50    * This software consists of voluntary contributions made by many
   51    * individuals on behalf of the Apache Software Foundation and was
   52    * originally based on software copyright (c) 1999, International
   53    * Business Machines, Inc., http://www.apache.org.  For more
   54    * information on the Apache Software Foundation, please see
   55    * <http://www.apache.org/>.
   56    */
   57   
   58   package dom.serialize;
   59   import java.io.ObjectInputStream;
   60   import org.apache.xerces.dom.DocumentImpl;
   61   import org.apache.xerces.dom.DeferredDocumentImpl;
   62   import org.w3c.dom.NodeList;
   63   import org.apache.xerces.dom.NodeImpl;
   64   import org.w3c.dom.Document;
   65   import java.io.FileInputStream;
   66   import org.w3c.dom.Node;
   67   import dom.DOMWriter;
   68   import dom.serialize;
   69   
   70   
   71   /**
   72    * This testcase tests the Java Serialization
   73    * of the DOM.
   74    * I wrote this to test this capability for
   75    * regresion
   76    * 
   77    * @author Jeffrey Rodriguez
   78    * @version $id$
   79    * @see                      TestSerializeDOMIn
   80    */
   81   public class TestSerializeDOMIn {
   82   
   83       public TestSerializeDOMIn() {
   84       }
   85   
   86   
   87       /**
   88        * Serializes Java DOM Object 
   89        * 
   90        * @param nameSerializeFile
   91        * @return 
   92        */
   93       public DocumentImpl deserializeDOM( String nameSerializedFile ){
   94           ObjectInputStream in   = null;
   95           DocumentImpl      doc  = null;
   96           try {
   97   
   98               FileInputStream fileIn = new FileInputStream( nameSerializedFile );
   99               in                     = new ObjectInputStream(fileIn);
  100               doc                    = (DocumentImpl) in.readObject();//Deserialize object
  101           } catch ( Exception ex ) {
  102               ex.printStackTrace();
  103           }
  104           return doc;
  105       }
  106   
  107   
  108       public static void main( String argv[]  ){
  109           if ( argv.length != 2 ) {
  110               System.out.println("Error - Usage: java TestSerializeDOMIn yourFile.ser elementName" );
  111               System.exit(1);
  112           }
  113   
  114           String    xmlFilename = argv[0];
  115   
  116           TestSerializeDOMIn         tst  = new TestSerializeDOMIn();
  117           DocumentImpl   doc  = tst.deserializeDOM( xmlFilename );
  118   
  119           NodeList nl         = doc.getElementsByTagName( argv[1]);
  120   
  121   
  122           int length      = nl.getLength();
  123   
  124           if ( length == 0 )
  125               System.out.println(argv[1] + ": is not in the document!");
  126   
  127           NodeImpl node = null;
  128           for ( int i = 0;i<length;i++ ){
  129               node                = (NodeImpl) nl.item(i);
  130               Node childOfElement = node.getFirstChild();
  131               if ( childOfElement != null ){
  132                   System.out.println( node.getNodeName() + ": " +
  133                                       childOfElement.getNodeValue() );
  134               }
  135           }
  136           try {
  137              DOMWriter prettyWriter = new DOMWriter( false );
  138              System.out.println( "Here is the whole Document" );
  139              prettyWriter.print(  doc.getDocumentElement() );
  140           } catch( Exception ex ){
  141           }
  142       }
  143   }

Save This Page
Home » Xerces-J-src.2.9.1 » dom » serialize » [javadoc | source]