【问题标题】:Java - how to read xml from url? [closed]Java - 如何从 url 读取 xml? [关闭]
【发布时间】:2013-06-06 09:11:30
【问题描述】:

我想从一个 url 读取一个 xml 代码并使用 java.xml 打印它。 网址是http://ste.hwg.cz/values.xml

我在阅读 stackoverflow 答案后尝试了很多代码,但它不起作用。

顺便说一下,我是 Java 新手,我刚刚编写了 Pascal 和 Delphi

【问题讨论】:

标签: java android xml


【解决方案1】:

解析还是打印?

这是基于我对 SO 的微小研究。

解析:

对于输入流的 xml 解析,您可以这样做:

// the SAX way:
XMLReader myReader = XMLReaderFactory.createXMLReader();
myReader.setContentHandler(handler);
myReader.parse(new InputSource(new URL(url).openStream()));

// or if you prefer DOM:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new URL(url).openStream());

打印:

如果你想直接在屏幕上打印 XML,你可以使用TransformerFactory

URL url = new URL(urlString);
URLConnection conn = url.openConnection();

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(conn.getInputStream());

TransformerFactory factory = TransformerFactory.newInstance();
Transformer xform = factory.newTransformer();

// that’s the default xform; use a stylesheet to get a real one
xform.transform(new DOMSource(doc), new StreamResult(System.out));

【讨论】:

  • 在屏幕上打印,但它不起作用,你能把包含导入内容的完整代码和 URL:ste.hwg.cz/values.xml 发送给我吗?
  • @Awkzz 那是勺子喂食,我不赞成。这是家庭作业吗?
【解决方案2】:

这是我用于此类任务的代码:

public void readFromUrl(String inurl){
try {
    URL url = new URL(inurl);

    BufferedReader in = new BufferedReader(
        new InputStreamReader(url.openStream()));

        String inputLine;
        while ((inputLine = in.readLine()) != null) {
            // HERE YOU CAN PRINT/LOG/SAVE THE LINE.
        }
        in.close();
} catch (Exception e) {
    e.printStackTrace();
}
}

附言

您可以使用StringBuilder 构建一个包含您的 XML 的字符串。

【讨论】:

  • 它不起作用:\,我试过这个:import java.io.BufferedReader;导入 java.io.InputStreamReader;导入 java.net.URL; public class Main { public void readFromUrl(String inurl){ try { URL url = new URL("ste.hwg.cz/values.xml");
  • 它不起作用:\,我试过这个:` import java.io.BufferedReader;导入 java.io.InputStreamReader;导入 java.net.URL;公共类 Main { public void readFromUrl(String inurl){ try { URL url = new URL("ste.hwg.cz/values.xml"); `
  • 这里的代码怎么写?
  • 你不能在这里写代码...你能用异常日志编辑你的问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-11
  • 2011-01-19
  • 2012-09-13
  • 1970-01-01
  • 1970-01-01
  • 2016-03-10
  • 1970-01-01
相关资源
最近更新 更多