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();
我正在尝试使用 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();