main.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 107 行

SCALA
107
字号
/*                     __                                               *\**     ________ ___   / /  ___     Scala API                            ****    / __/ __// _ | / /  / _ |    (c) 2002-2007, LAMP/EPFL             ****  __\ \/ /__/ __ |/ /__/ __ |    http://scala-lang.org/               **** /____/\___/_/ |_/____/_/ | |                                         ****                          |/                                          **\*                                                                      */// $Id: Main.scala 13032 2007-10-09 16:28:22Z michelou $package scala.xml.include.saximport org.xml.sax.SAXExceptionimport org.xml.sax.SAXParseExceptionimport org.xml.sax.EntityResolverimport org.xml.sax.helpers.XMLReaderFactoryimport org.xml.sax.XMLReaderobject Main {      /**      * The driver method for xinc      * Output is written to System.out via Conolse      * </p>      *      * @param args  contains the URLs and/or filenames      *              of the documents to be procesed.      */    def main(args: Array[String]) {      var parser: XMLReader = null      var err = false      try {        parser = XMLReaderFactory.createXMLReader()      }       catch {         case e:SAXException =>          try {            parser = XMLReaderFactory.createXMLReader(              "org.apache.xerces.parsers.SAXParser")          } catch {            case e2:SAXException =>              System.err.println("Could not find an XML parser")              err = true          }      }      if(err) return;      // Need better namespace handling      try {        parser.setFeature("http://xml.org/sax/features/namespace-prefixes", true);      }      catch {         case e:SAXException =>          System.err.println(e)          err = true      }         if (err) return            if (args.length == 0) return      var resolver: EntityResolver = null      var arg: Int = 0      if (args(0).equals("-r")) {        try {          resolver = Class.forName(args(1)).newInstance().asInstanceOf[EntityResolver];          parser.setEntityResolver(resolver);        }        catch {           case ex:Exception =>             System.err.println("Could not load requested EntityResolver")            err = true        }        arg = 2      }      if (err) return            while (arg < args.length) {        try {          val includer = new XIncludeFilter();          includer.setParent(parser)          val s = new XIncluder(System.out, "UTF-8")          includer.setContentHandler(s)          if (resolver != null) includer.setEntityResolver(resolver)          try {            includer.setProperty(              "http://xml.org/sax/properties/lexical-handler",              s)            s.setFilter(includer)          }          catch {             case e:SAXException => // Will not support comments          }          includer.parse(args(arg))        }        catch {           case e:SAXParseException =>            System.err.println(e)            System.err.println("Problem in " + e.getSystemId()                                + " at line " + e.getLineNumber())          case e: Exception => // be specific about exceptions????            System.err.println(e)            e.printStackTrace()        }        arg += 1      }    }}

⌨️ 快捷键说明

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