Java получить атрибуты с DOM Reader - PullRequest
0 голосов
/ 28 февраля 2020

Эй, я бы хотел получить атрибуты фида.

Это мой настоящий код:

DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
    try {
        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();

            Document document = documentBuilder.parse(this.getUrlStream());
            document.getDocumentElement().normalize();
            NodeList nodeList = document.getElementsByTagName("item");

            for (int i = 0; i <= nodeList.getLength(); i++) {
                Node node = nodeList.item(i);
                System.out.println("Node name: " + node.getNodeName());
                Element element1 = (Element) node;
                System.out.println("title; " + element1.getElementsByTagName("title").item(0).getTextContent());
                Element element = (Element) node;
                if(node.getNodeType() == Node.ELEMENT_NODE) {


                    this.title = element.getElementsByTagName("title").item(0).getTextContent();




                    System.out.println("description" + element.getElementsByTagName("description").item(0).getTextContent());

                    String attribute = element.getAttribute("src");
                    System.out.println(attribute);
                }

            }


    } catch (ParserConfigurationException | SAXException | IOException ex) {
        ex.printStackTrace();
    }

Следующая часть кода выше должна найти атрибут: "url ":

String attribute = element.getAttribute("src");
                    System.out.println(attribute);

Sysout: Nothing

Rss-Feed: https://www.spiegel.de/politik/index.rss

Большое спасибо заранее!

1 Ответ

1 голос
/ 01 марта 2020

Вы используете getAttribute() для объекта Element тега <item>. Однако сначала вы должны выбрать тег <enclosure>, используя getElementsByTagName(), как вы уже сделали. Поэтому вы должны использовать что-то вроде:

for (...) {
   // ...

   // "element" is the object for the <item> tag
   Element enclosure = (Element)element.getElementsByTagName("enclosure").item(0);
   String url = enclosure.getAttribute("url");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...