广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州Java SAX API之ContentHandler_北大青鸟IT学校

作者:邓华发布时间:2021-04-15分类:Java技术浏览:684


导读:Java是现在非常主流的编程语言之一,很多人想转行学习Java。那么,下面就让我们跟着惠州北大青鸟老师一起来学习Java SAX API中的ContentHandler知识。

Java是现在非常主流的编程语言之一,很多人想转行学习Java。那么,下面就让我们跟着惠州北大青鸟老师一起来学习Java SAX API中的ContentHandler知识。

下面的代码选择实现 ContentHandler 接口并提供所有必要方法的实现。

它还实现 ErrorHandler 接口。

import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;import org.xml.sax.Attributes;import org.xml.sax.ContentHandler;import org.xml.sax.ErrorHandler;import org.xml.sax.InputSource;import org.xml.sax.Locator;import org.xml.sax.SAXException;import org.xml.sax.SAXParseException;import org.xml.sax.XMLReader;public class Main {  static public void main(String[] arg) throws Exception {
   String filename = "yourXML.xml";    // Create a new factory that will create the parser.    SAXParserFactory spf = SAXParserFactory.newInstance();    // Create the XMLReader to be used to parse the document.    SAXParser parser = spf.newSAXParser();
   XMLReader reader = parser.getXMLReader();    // Specify the error handler and the content handler.    reader.setErrorHandler(new MyErrorHandler());
   reader.setContentHandler(new MyContentHandler());    // Use the XMLReader to parse the entire file.    InputSource is = new InputSource(filename);
   reader.parse(is);
 }
}class MyContentHandler implements ContentHandler {  private Locator locator;  /**
  * The name and of the SAX document and the current location within the
  * document.
  */
 public void setDocumentLocator(Locator locator) {
   this.locator = locator;
   System.out.println("-" + locator.getLineNumber() + "---Document ID: "
       + locator.getSystemId());
 }  /** The parsing of a document has started.. */

 public void startDocument() {
   System.out.println("-" + locator.getLineNumber()
       + "---Document parse started");
 }  /** The parsing of a document has completed.. */
 public void endDocument() {
   System.out.println("-" + locator.getLineNumber()
       + "---Document parse ended");
 }  /** The start of a namespace scope */
 public void startPrefixMapping(String prefix, String uri) {
   System.out.println("-" + locator.getLineNumber()
       + "---Namespace scope begins");
   System.out.println("     " + prefix + "=\"" + uri + "\"");
 }  /** The end of a namespace scope */
 public void endPrefixMapping(String prefix) {
   System.out.println("-" + locator.getLineNumber()
       + "---Namespace scope ends");
   System.out.println("     " + prefix);
 }  /** The opening tag of an element. */
 public void startElement(String namespaceURI, String localName, String qName,
     Attributes atts) {
   System.out.println("-" + locator.getLineNumber()
       + "---Opening tag of an element");
   System.out.println("       Namespace: " + namespaceURI);
   System.out.println("      Local name: " + localName);
   System.out.println("  Qualified name: " + qName);    for (int i = 0; i < atts.getLength(); i++) {
     System.out.println("       Attribute: " + atts.getQName(i) + "=\""
         + atts.getValue(i) + "\"");
   }
 }  /** The closing tag of an element. */
 public void endElement(String namespaceURI, String localName, String qName) {
   System.out.println("-" + locator.getLineNumber()
       + "---Closing tag of an element");
   System.out.println("       Namespace: " + namespaceURI);
   System.out.println("      Local name: " + localName);
   System.out.println("  Qualified name: " + qName);
 }  /** Character data. */
 public void characters(char[] ch, int start, int length) {
   System.out.println("-" + locator.getLineNumber() + "---Character data");
   showCharacters(ch, start, length);
 }  /** Ignorable whitespace character data. */
 public void ignorableWhitespace(char[] ch, int start, int length) {
   System.out.println("-" + locator.getLineNumber() + "---Whitespace");
   showCharacters(ch, start, length);
 }  /** Processing Instruction */
 public void processingInstruction(String target, String data) {
   System.out.println("-" + locator.getLineNumber()
       + "---Processing Instruction");
   System.out.println("         Target: " + target);
   System.out.println("           Data: " + data);
 }  /** A skipped entity. */
 public void skippedEntity(String name) {
   System.out.println("-" + locator.getLineNumber() + "---Skipped Entity");
   System.out.println("           Name: " + name);
 }  /**
  * Internal method to format arrays of characters so the special whitespace
  * characters will show.
  */
 public void showCharacters(char[] ch, int start, int length) {
   System.out.print("        \"");    for (int i = start; i < start + length; i++)      switch (ch[i]) {      case "\n":
       System.out.print("\\n");        break;      case "\r":
       System.out.print("\\r");        break;      case "\t":
       System.out.print("\\t");        break;      default:
       System.out.print(ch[i]);        break;
     }
   System.out.println("\"");
 }
}class MyErrorHandler implements ErrorHandler {  public void warning(SAXParseException e) throws SAXException {
   show("Warning", e);    throw (e);
 }  public void error(SAXParseException e) throws SAXException {
   show("Error", e);    throw (e);
 }  public void fatalError(SAXParseException e) throws SAXException {
   show("Fatal Error", e);    throw (e);
 }  private void show(String type, SAXParseException e) {
   System.out.println(type + ": " + e.getMessage());
   System.out.println("Line " + e.getLineNumber() + " Column "
       + e.getColumnNumber());
   System.out.println("System ID: " + e.getSystemId());
 }
}

更多Java资讯关注网站动态,或者来惠州北大青鸟新方舟校区了解一下。

Java.png

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表