Java XML教程(一)__教程 |
|
日期:2007-5-20 1:28:04 人气:234 [大 中 小] |
|
|
|
/* * (C) Copyright IBM Corp. 1999 All rights reserved. * * US Government Users Restricted Rights Use, duplication or * disclosure restricted by GSA ADP Schedule Contract with IBM Corp. * * The program is provided "as is" without any warranty express or * implied, including the warranty of non-infringement and the implied * warranties of merchantibility and fitness for a particular purpose. * IBM will not be liable for any damages suffered by you as a result * of using the Program. In no event will IBM be liable for any * special, indirect or consequential damages or lost profits even if * IBM has been advised of the possibility of their occurrence. IBM * will not be liable for any third party claims against you. */
import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.UnsupportedEncodingException;
import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import com.ibm.xml.parsers.DOMParser;
/** * domCounter.java * This code creates a DOM parser, parses a document, then * prints statistics about the number and type of nodes * found in the document. */
public class domCounter { int documentNodes = 0; int elementNodes = 0; int entityReferenceNodes = 0; int cdataSections = 0; int textNodes = 0; int processingInstructions = 0;
public void parseAndCount(String uri) { Document doc = null; try { DOMParser parser = new DOMParser(); parser.parse(uri); doc = parser.getDocument(); } catch (Exception e) { System.err.println("Sorry, an error occurred: " + e); }
// We`ve parsed the document now, so let`s scan the DOM tree and // print the statistics. if (doc != null) { scanDOMTree(doc); System.out.println("Document Statistics for " + uri + ":"); System.out.println("===================================="); System.out.println("Document Nodes: " + documentNodes); System.out.println("Element Nodes: " + elementNodes); System.out.println("Entity Reference Nodes: " + entityReferenceNodes); System.out.println("CDATA Sections: " + cdataSections); System.out.println("Text Nodes: " + textNodes); System.out.println("Processing Instructions: " + processingInstructions); System.out.println(" ----------"); int totalNodes = documentNodes + elementNodes + entityReferenceNodes + cdataSections + textNodes + processingInstructions; System.out.println("Total: " + totalNodes + " Nodes"); } }
/** Scans the DOM tree and counts the different types of nodes. */ public void scanDOMTree(Node node) { int type = node.getNodeType(); switch (type) { case Node.DOCUMENT_NODE: documentNodes++; scanDOMTree(((Document)node).getDocumentElement()); break; |
|
出处:本站原创 作者:佚名 |
|
|