我正在尝试从Web服务器读取XML文件,并将其内容显示在上ListView,因此我正在读取文件,如下所示:
ListView
File xml = new File("http://example.com/feed.xml"); DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse(xml); doc.getDocumentElement().normalize(); NodeList mainNode = doc.getElementsByTagName("article"); // for loop to populate the list...
问题是我收到此错误:
java.io.FileNotFoundException:/http:/mydomainname.com/feed.xml(无此类文件或目录)
为什么我遇到这个问题以及如何解决?
文件旨在指向本地文件。
如果要指向远程URI,最简单的方法是使用类URL
//modified code URL url = new URL("http://example.com/feed.xml"); URLConnection urlConnection = url.openConnection(); InputStream in = new BufferedInputStream(urlConnection.getInputStream()); //your code DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.parse( in );
如您所见,稍后,借助Java流式API,您可以轻松地调整代码逻辑以处理文件的内容。这是由于class中的parse方法的重载所致DocumentBuilder。
DocumentBuilder