⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buildxml.java

📁 java web services how to program
💻 JAVA
字号:
// Fig. 4.11 : BuildXml.java
// Creates element node, attribute node, comment node,
// processing instruction and a CDATA section.
package com.deitel.jws1.xml;

// Java core packages
import java.io.*;

// Java extension packages
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.dom.*;

// third-party libraries
import org.xml.sax.*;
import org.w3c.dom.*;
         
public class BuildXml {
   private Document document;   

   public BuildXml( String fileName )
   {
      DocumentBuilderFactory factory =
            DocumentBuilderFactory.newInstance();
      
      // create new DOM tree
      try {

         // get DocumentBuilder
         DocumentBuilder builder = 
            factory.newDocumentBuilder();

         // create root node       
         document = builder.newDocument();
      } 
      
      // handle exception thrown by DocumentBuilder
      catch ( ParserConfigurationException parserException ) {
         parserException.printStackTrace();
      }

      Element root = document.createElement( "root" );
      document.appendChild( root );

      // add comment to XML document
      Comment simpleComment = document.createComment( 
         "This is a simple contact list" );
      root.appendChild( simpleComment );

      // add child element
      Node contactNode = createContactNode( document );
      root.appendChild( contactNode );

      // add processing instruction
      ProcessingInstruction pi = 
         document.createProcessingInstruction(
             "myInstruction", "action silent" );
      root.appendChild( pi );

      // add CDATA section
      CDATASection cdata = document.createCDATASection(
         "I can add <, >, and ?" );     
      root.appendChild( cdata ); 

      // write XML document to disk
      try {      

         // create DOMSource for source XML document
         Source xmlSource = new DOMSource( document );
         
         // create StreamResult for transformation result
         Result result = new StreamResult( 
            new FileOutputStream( new File( fileName ) ) );

         // create TransformerFactory
         TransformerFactory transformerFactory =
            TransformerFactory.newInstance();

         // create Transformer for transformation
         Transformer transformer = 
            transformerFactory.newTransformer();
         
         transformer.setOutputProperty( "indent", "yes" );

         // transform and deliver content to client
         transformer.transform( xmlSource, result ); 
      } 
      
      // handle exception creating TransformerFactory
      catch ( 
         TransformerFactoryConfigurationError factoryError ) {
         System.err.println( "Error creating " +
            "TransformerFactory" );
         factoryError.printStackTrace();
      }
      
      // handle exception transforming document
      catch ( TransformerException transformerError ) {
         System.err.println( "Error transforming document" );
         transformerError.printStackTrace();
      }
      
      // handle exception writing data to file
      catch ( IOException ioException ) {
         ioException.printStackTrace();
      }
   }

   public Node createContactNode( Document document )
   {

      // create FirstName and LastName elements
      Element firstName = document.createElement( "FirstName" );
      Element lastName = document.createElement( "LastName" );

      firstName.appendChild( document.createTextNode( "Sue" ) );
      lastName.appendChild( document.createTextNode( "Green" ) );
      
      // create contact element
      Element contact = document.createElement( "contact" );

      // create attribute
      Attr genderAttribute = document.createAttribute( "gender" ); 
      genderAttribute.setValue( "F" );

      // append attribute to contact element
      contact.setAttributeNode( genderAttribute );
      contact.appendChild( firstName );
      contact.appendChild( lastName );
      
      return contact;
   }    
   
   public static void main( String args[] )
   {
      BuildXml buildXml = new BuildXml( args[ 0 ] );    
   }
}

// ************************************************************************** 
// * (C) Copyright 2003 by Deitel & Associates, Inc. and Prentice Hall.     *
// * All Rights Reserved.                                                   *
// *                                                                        *
// * DISCLAIMER: The authors and publisher of this book have used their     *
// * best efforts in preparing the book. These efforts include the          *
// * development, research, and testing of the theories and programs        *
// * to determine their effectiveness. The authors and publisher make       *
// * no warranty of any kind, expressed or implied, with regard to these    *
// * programs or to the documentation contained in these books. The authors *
// * and publisher shall not be liable in any event for incidental or       *
// * consequential damages in connection with, or arising out of, the       *
// * furnishing, performance, or use of these programs.                     *
// **************************************************************************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -