Синтаксический анализ RSS-канала, получение значений XML, а не пространств имен - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь проанализировать RSS-канал, и когда я читаю данные, я возвращаю буквальные URL-адреса пространства имен вместо значений.

public void readRss() {
    try {

        URL url = new URL("http://olemisssports.com/calendar.ashx/calendar.rss?sport_id=0");
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        conn.setRequestProperty("Accept","application/xml + rss");
        conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 4.01; Windows NT)");

        SyndFeedInput input = new SyndFeedInput();

        XmlStreamReader xmlStReader =  new XmlStreamReader(conn.getInputStream());


        SyndFeed feed = input.build(xmlStReader);


        for (Iterator iterator = feed.getEntries().iterator(); iterator.hasNext();) {

            ArrayList fields = (ArrayList) syndEntry.getForeignMarkup();

            for (int i = 0; i < fields.size(); i++) {
                System.out.println("field: " + fields.get(i));
            }

        }

}

И возвращаемые значения выглядят следующим образом ..

field: [Element: <ev:location [Namespace: http://purl.org/rss/1.0/modules/event/]/>]
field: [Element: <ev:startdate [Namespace: http://purl.org/rss/1.0/modules/event/]/>]
field: [Element: <ev:enddate [Namespace: http://purl.org/rss/1.0/modules/event/]/>]
field: [Element: <s:localstartdate [Namespace: http://sidearmsports.com/schemas/cal_rss/1.0/]/>]
field: [Element: <s:localenddate [Namespace: http://sidearmsports.com/schemas/cal_rss/1.0/]/>]

Фактические данные, с другой стороны, выглядят как ..

<ev:location>Oxford, Miss.</ev:location>
<ev:startdate>2019-05-11T23:00:00.0000000Z</ev:startdate>
<ev:enddate>2019-05-12T02:00:00.0000000Z</ev:enddate>
<s:localstartdate>2019-05-11T18:00:00.0000000</s:localstartdate>
<s:localenddate>2019-05-11T21:00:00.0000000</s:localenddate>

Мне интересно, почему я возвращаю эти URI пространства имен вместо литеральных значений, что мне нужно делать по-другому в моем коде?

...