因为它默认的是用sun的JAXP的SAX Driver,如果你安装了j2se1.4就可以使用了。要么你要另外设置saxdrvier或者jaxp包放到classpath中去

解决方案 »

  1.   

    你的classpath环境,没有相应的解析器
      

  2.   

    jaxp找解析器的顺序如下:1。Use the system property first
    2。try to read from $java.home/lib/xml.properties
    3。try to find services in CLASSPATH
      

  3.   

    真长见识:
    除了以上各位的解决办法,如果你想应用其他厂商的解析器的话
    --直接指定解析类
    XMLReader myReader = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
    --从设置的系统变量中获取
    System.setProperty("org.xml.sax.driver", "org.apache.xerces.parsers.SAXParser");XMLReader parser = XMLReaderFactory.createXMLReader();//无须指定
      

  4.   

    装了j2sdk1.4.1也一样,我把jaxp里的jar文件放到%JAVA_HOME%\lib\etc目录下也是这样的结果,我不信邪,于是又用CLASS_PATH指定jaxp里的jar文件,情况一样,没法改变的
      

  5.   

    XMLReader xmlr = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
      

  6.   

    同意楼上的。
    如果不指定XMLReader的提供者,则XMLReaderFactory自动取属性文件中默认设置的XMLReader提供者,如果你没有设置jvm属性文件中的XMLReader,那肯定会是个空值。
    http://java.sun.com/j2se/1.4/docs/api/org/xml/sax/helpers/XMLReaderFactory.html