大概您的意图是使用 Android API 来做到这一点,因此请酌情翻译。
在纯 Java 中,有XmlStreamReader
用于 StAX 解析的,它可以用InputStream
from an实例化URLConnnection
,如下所示:
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamReader;
public class ParseStream {
public static void main(String[] args) throws Exception {
URLConnection connection =
new URL("http://api.androidhive.info/pizza/?format=xml").openConnection();
InputStream inputStream = connection.getInputStream();
XMLStreamReader streamReader =
XMLInputFactory.newInstance().createXMLStreamReader(inputStream, "UTF-8");
while (streamReader.hasNext())
if (streamReader.next() == XMLStreamConstants.START_ELEMENT)
System.out.println("START_ELEMENT " + streamReader.getName());
}
}
事实上,我会对其进行一些改进,例如从 URLConnection 中获取编码,而不是使用固定的编码。
但它应该给出这个想法。