Какое собственное имя для строк кода, ответственных за выборку данных из веб-текста? - PullRequest
0 голосов
/ 25 апреля 2019

Мне нужна помощь с разделением этих строк кода и преобразованием их в методы:

   url = new URL(URL_SOURCE);
   con = url.openConnection();
  is = con.getInputStream();
   DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
doc.getDocumentElement().normalize();
   NodeList nList = doc.getElementsByTagName("pozycja");

Я разделил это на:

 public URLConnection openConnectionOfGivenURL(String givenURL) throws IOException {
    URL url = new URL(givenURL);
    return url.openConnection();
}

Я не знаю, что мне делать состальное.Должен ли я назвать это с getDOM?

1 Ответ

1 голос
/ 25 апреля 2019

Я думаю, что все, кроме первой и последней строки должны быть в методе. Не пытайтесь поделить этот код дальше, чем это. Например. Document getXml(URL url) или, возможно, назовите его downloadXml, если вы собираетесь использовать его только с URL-адресами HTTP (S).

Основная причина того, чтобы не делить его дальше, состоит в том, что вы должны использовать try-with-resources.

Кроме того, вам не нужно нормализовать анализируемый DOM, поскольку синтаксический анализатор уже создает нормализованное дерево DOM .

Document getXml(URL url) {
    DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
    URLConnection con = url.openConnection();
    try (InputStream is = con.getInputStream()) {
        return dBuilder.parse(is);
    }
}

Тогда вы используете это так:

URL url = new URL(URL_SOURCE);
Document doc = getXml(url);
NodeList nList = doc.getElementsByTagName("pozycja");
...