Android parseXML не работает на уровне API 28 - PullRequest
0 голосов
/ 11 ноября 2018
    try {
            hashMap = new HashMap<>();
            InputStream inputStream;
                URL url = new URL(params[0]);
                inputStream = url.openStream();
            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
            Document document = documentBuilder.parse(inputStream);
            Element element = document.getDocumentElement();
            element.normalize();
            NodeList nodeList = document.getElementsByTagName("string");
            for (int current = 0; current < nodeList.getLength(); current++) {
                Node node = nodeList.item(current);
                if (node.getNodeType() == Node.ELEMENT_NODE) {
                    Element element_specific = (Element) node;
                    hashMap.put(element_specific.getElementsByTagName("one").item(0).getChildNodes().item(0).getNodeValue(), element_specific.getElementsByTagName("two").item(0).getChildNodes().item(0).getNodeValue());
                }
            }
        } catch (Exception e) {
           e.printStackTrace();
        }

Я пытаюсь проанализировать XML-файл, используя InputStream и DocumentBuilder. Он отлично работает с уровня API 23 до уровня API 27, но когда я запускаю приложение на targetApi: 28 и Android 9 Pie, он не работает, и я получаю только результат: null.

Я не знаю, почему это происходит. В чем проблема?

...