public static TVDBUpdates getUpdates(String urlString, int seriesId) throws TvDbException {
        TVDBUpdates updates = new TVDBUpdates();

        Document doc = DOMHelper.getEventDocFromUrl(urlString);

        if (doc != null) {
            Node root = doc.getChildNodes().item(0);
            List<SeriesUpdate> seriesUpdates = new ArrayList<>();
            List<EpisodeUpdate> episodeUpdates = new ArrayList<>();
            List<BannerUpdate> bannerUpdates = new ArrayList<>();

            NodeList updateNodes = root.getChildNodes();
            Node updateNode;
            for (int i = 0; i < updateNodes.getLength(); i++) {
                updateNode = updateNodes.item(i);
                switch (updateNode.getNodeName()) {
                    case SERIES:
                        SeriesUpdate su = parseNextSeriesUpdate((Element) updateNode);
                        if (isValidUpdate(seriesId, su)) {
                            seriesUpdates.add(su);
                        }
                        break;
                    case EPISODE:
                        EpisodeUpdate eu = parseNextEpisodeUpdate((Element) updateNode);
                        if (isValidUpdate(seriesId, eu)) {
                            episodeUpdates.add(eu);
                        }
                        break;
                    case BANNER:
                        BannerUpdate bu = parseNextBannerUpdate((Element) updateNode);
                        if (isValidUpdate(seriesId, bu)) {
                            bannerUpdates.add(bu);
                        }
                        break;
                    default:
                        LOG.warn("Unknown update type '{}'", updateNode.getNodeName());
                }
            }

            updates.setTime(DOMHelper.getValueFromElement((Element) root, TIME));
            updates.setSeriesUpdates(seriesUpdates);
            updates.setEpisodeUpdates(episodeUpdates);
            updates.setBannerUpdates(bannerUpdates);
        }

        return updates;
    }