为了账号安全,请及时绑定邮箱和手机立即绑定

从 URL 读取 XML 文件

从 URL 读取 XML 文件

慕标琳琳 2022-11-02 15:21:49
我尝试从https://www.nbp.pl/kursy/xml/c001z020102.xml读取 xml 文件。我添加了带有数字的 sout 以观察进度。public void wypisanie() throws Exception        {            URL url = new URL("https://www.nbp.pl/kursy/xml/c001z020102.xml");            System.out.println("1");            URLConnection urlConnection = url.openConnection();            System.out.println("2");            InputStream in = new BufferedInputStream(urlConnection.getInputStream());            System.out.println("3");            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();            System.out.println("4");            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();            System.out.println("5");            Document doc1 = dBuilder.parse( in );            System.out.println("6");            Element element1 = doc1.getDocumentElement();            System.out.println("7");            NodeList nodes1 = element1.getChildNodes();            System.out.println("8");            for (int i = 0; i < nodes1.getLength(); i++) {                System.out.println("" + nodes1.item(i).getTextContent());            }        }这是结果:12https://www.nbp.pl/kursy/xml/c001z020102我的目标是从此 URL 获取美元汇率。有人有其他想法我应该怎么做?编辑:我尝试使用像这样的其他 URL: https ://www.w3schools.com/xml/plant_catalog.xml 并且程序有效。那么“旧”网址有什么问题? https://www.nbp.pl/kursy/xml/c001z020102.xml“旧”网址的结果12345C:\Users\user\IdeaProjects\NBP\untitled\abch.dtd (The system cannot find the file specified)
查看完整描述

1 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

您的机器上没有 DTD 文件。


尝试这个:


    public void wypisanie() throws Exception {

        URL url = new URL("https://www.nbp.pl/kursy/xml/c001z020102.xml");

        System.out.println("1");

        URLConnection urlConnection = url.openConnection();

        System.out.println("2");

        InputStream in = new BufferedInputStream(urlConnection.getInputStream());

        System.out.println("3");


        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();


        dbf.setValidating(false);

        dbf.setNamespaceAware(true);

        dbf.setFeature("http://xml.org/sax/features/namespaces", false);

        dbf.setFeature("http://xml.org/sax/features/validation", false);

        dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false);

        dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);


        System.out.println("4");

        DocumentBuilder dBuilder = dbf.newDocumentBuilder();

        System.out.println("5");

        Document doc1 = dBuilder.parse(in);

        System.out.println("6");

        Element element1 = doc1.getDocumentElement();

        System.out.println("7");

        NodeList nodes1 = element1.getChildNodes();

        System.out.println("8");

        for (int i = 0; i < nodes1.getLength(); i++) {

            if ("pozycja".equals(nodes1.item(i).getNodeName())) {

                System.out.println("" + nodes1.item(i).getTextContent());

            }

        }

    }


查看完整回答
反对 回复 2022-11-02
  • 1 回答
  • 0 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信