当前位置: 首页 > 知识库问答 >
问题:

在java中从xml at url读取数据

姬俊能
2023-03-14

我需要能够使用以下xml从欧元中提取美元转换:http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml

如果我手动下载xml并从那里解析到我需要的数据,我就可以使用它,但我不确定如何直接从url获取它。

谢谢你

共有2个答案

微生欣怡
2023-03-14

再简单不过了:

package com.danielmarreco;

import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

import org.w3c.dom.Element;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.InputStream;
import java.net.URL;

public class Main {

    public static void main(String[] args) {
        try {
            InputStream is = new URL("http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml").openStream();
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document doc = db.parse(is);

            NodeList nodeList = doc.getElementsByTagName("Cube");

            for (int i = 0; i < nodeList.getLength(); i ++) {
                Node node = nodeList.item(i);
                if (node.getNodeType() == Node.ELEMENT_NODE) {
                    Element element = (Element) node;
                    if(element.getAttribute("currency").equals("BRL")) 
                        System.out.println("1 EUR = " + element.getAttribute("rate") + " BRL");
                }
            }
        }
        catch (Exception e)        {
            e.printStackTrace();
        }
    }
}
仰英发
2023-03-14

如果我理解的很好,那么直接从URL获取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());

它适用于服务或独立上下文,但如果您尝试从WEB层访问XML,您可以考虑AJAX方法。

 类似资料:
  • 问题内容: 嗨,就像标题说的那样,我正在尝试从Java Servlet读取数组。我正在尝试读取Java脚本文件中的数组。 Java Servlet代码:字符串graphData [] = dbHandler.select(attributes); //用数据库中的数据填充数组。request.setAttribute(“ graphData”,graphData); 我尝试了所有这些选项,但没有一

  • 如何在java中读取整数输入...我尝试了缓冲阅读器和扫描仪...但它不输出任何东西...我正在使用eclipse Indigo...它会影响输出吗... 示例代码:

  • 问题内容: 我有以下格式的文本文件: Details.txt 该文件是.txt文件。我想从该文件中读取课程标题,并打印相应的教科书和教师信息。但是我不确定该遵循什么程序?将信息存储在数组中效率不高!我应该如何进行?注意:我无法更改文件中的信息,因此不应更改!显然,文件将通过以下代码读取: 但是我应该如何根据课程名称,教科书和讲师的标签从该文件中提取数据! 问题答案: 首先正确地逐行阅读文件,然后搜

  • 我有一个Web应用程序,其中包含一个web.xml文件和我用Maven构建的一些java类。在某些时候,我想在java类中获取一个来自Web.xml文件的参数。 如何在普通java类而不是Servlet中读取值?

  • 这是我的代码 错误如下: 线程“main”中出现异常Java . lang . nosuchfielderror:RAW _ XML _ FILE _ HEADER at org . Apache . poi . poi fs . FILE system . FILE magic .(FILE magic . Java:42)at org . Apache . poi . open XML 4j

  • 问题内容: 我有一个侦听某些x端口的套接字。 我可以从客户端应用程序将数据发送到套接字,但是无法从服务器套接字获得任何响应。 ..此代码部分从服务器读取数据。 但是,直到关闭服务器上的套接字,我才能从服务器读取任何内容。服务器代码不受我控制,无法对其进行编辑。 如何从客户端代码中克服这个问题。 谢谢 问题答案: 为了在客户端和服务器之间进行通信,必须明确定义协议。 客户端代码将阻塞,直到从服务器收