Android SAXParser 无法解析符号 'newInstance()'

Android SAXParser cannot resolve symbol 'newInstance()'

我正在尝试使用 SAXParser 学习 XML 解析,我根据教程编写了简单的代码,应用程序从 URL 读取 xml 文件并显示当前温度选择城市,但 android studio 向我显示行中的错误:SAXParserFactory spf = new SAXParserFactory.newInstance(); 消息 Cannot resolve symbol 'newInstance()' 并且当我尝试 运行 应用程序抛出错误 cannot find symbol class newInstance

我到处搜索,每个人都在 SAXParserFactory(); 之后使用与 .newInstance(); 相同的代码。我知道 SAXPArser 已经很老了,所有关于 SAX 的 tutorials/articles 都是从 2011/12 年开始的,所以也许从那以后发生了一些变化?谁能告诉我哪里出了问题?

这是我的主要java class:

<pre>package com.mycompany.weatherxmlparser;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;

import java.net.URL;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;


public class MainActivity extends Activity {

    String baseURL = "http://api.openweathermap.org/data/2.5/weather?q=";
    String koncowkaURL = "&mode=xml";
    TextView tv;
    EditText city;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button b = (Button) findViewById(R.id.button);
        tv = (TextView)findViewById(R.id.txtview);
        city = (EditText)findViewById(R.id.etcity);


        b.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //pobieranie wpisanego miasta i stanu/kraju
                String c = city.getText().toString();


                //laczenie adresu url
                StringBuilder URL = new StringBuilder(baseURL);
                URL.append(c + koncowkaURL);
                String fullURL = URL.toString();

                try {
                    URL website = new URL(fullURL);
                    //ustawianie xmlreadera do pobierania danych
                    SAXParserFactory spf = new SAXParserFactory.newInstance();
                    SAXParser sp = spf.newSAXParser();
                    XMLReader xr = sp.getXMLReader();

                    //ustawianie handlera
                    HandlingXMLStuff doingWork = new HandlingXMLStuff();
                    xr.setContentHandler(doingWork);
                    //parsowanie xml'a
                    xr.parse(new InputSource(website.openStream()));
                    //ustawianie tekstu
                    String information = doingWork.getInformation();
                    tv.setText(information);



                } catch (Exception e){
                    tv.setText("error!");
                }


            }
        });
    }

<code>

确保您使用的是 Java JDK 7. 清理并重建您的代码,尝试关闭并重新打开您的项目并重新启动您的 IDE。有时这些错误的发生没有充分的理由。

错误的是“new SAXParserFactory.newInstance()”表达式中的“new”。 使用 SAXParserFactory spf = SAXParserFactory.newInstance();