java 如何远程读取xml文件.
import java.io.File; import java.util.HashMap; import java.util.List; import java.util.Map; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class XMLTest { //filename D:\SWTdemo\eg.xml private Map<String, String> readXml(String filename) { File file = new File(filename); SAXReader reader = new SAXReader(); Map<String, String> map = new HashMap<String, String>(); try { Document doc = reader.read(file); Element root = doc.getRootElement(); List<Element> listmsg = root.elements(); if(listmsg.size()==0) return null; for (Element element : listmsg) { map.put(element.getName(), element.getText()); } } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } return map; } public static void main(String[] args) { XMLTest xml = new XMLTest(); Map<String, String> map = xml.readXml("http://127.0.0.1:8983/sparkweb/eg.xml"); System.out.println("服务器:"+map.get("server")); } }
这个是我的代码.如果传入本地的文件就是正确的.如果我传入一个URL路径的话就会报找不到这个文件.同样的xml文件放的位置不一样.我想问问如果要这样做怎么办.(提示我只能用那样的只能用绝对路径.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
引用来自“oncereply”的帖子
http://dom4j.sourceforge.net/dom4j-1.6.1/apidocs/org/dom4j/io/SAXReader.html#read(java.net.URL)
问题我以找到解决的方法.说出来有点丢人.dom4j.有提供一个可以读取远程xml的方法.
方法是read的重载里面.可以传如一个URL路径.上面的File就不需要了.
http://dom4j.sourceforge.net/dom4j-1.6.1/apidocs/org/dom4j/io/SAXReader.html#read(java.net.URL)
读取网络上的资源不能这样用File,试试http://www.oschina.net/p/httpclient