Разбор XML с атрибутами в Java? - PullRequest
1 голос
/ 11 октября 2011

У меня есть URL: http://ws.audioscrobbler.com/2.0/?method=chart.getlovedtracks&api_key=b25b959554ed76058ac220b7b2e0a026&page=3&limit=25, который отображает XML с информацией о названии песни и исполнителе. Он также отображает 3 ссылки на изображения разных размеров, эти URL-адреса обозначены

<image size="small">
<image size="large">
<image size="extralarge">  

Вот код, который я использую в данный момент, однако я не знаю, как получить URL только для изображения среднего размера ???

private void parseXml(String urlPath) throws Exception {
    URL url = new URL(urlPath);
    URLConnection connection = url.openConnection();
    DocumentBuilder db = DOCUMENT_BUILDER_FACTORY.newDocumentBuilder();

    final Document document = db.parse(connection.getInputStream());
    XPath xPathEvaluator = XPATH_FACTORY.newXPath();
    XPathExpression nameExpr = xPathEvaluator.compile("lfm/tracks/track/name");
    NodeList trackNameNodes = (NodeList) nameExpr.evaluate(document, XPathConstants.NODESET);
    for (int i = 0; i < trackNameNodes.getLength(); i++) {
        Node trackNameNode = trackNameNodes.item(i);
        System.out.println(String.format("Track Name: %s" , trackNameNode.getTextContent()));

        XPathExpression artistImageExpr = xPathEvaluator.compile("following-sibling::/image");
        NodeList artistImageNodes = (NodeList) artistImageExpr.evaluate(trackNameNode, XPathConstants.NODESET);
        for (int j=0; j < artistImageNodes.getLength(); j++) {
            System.out.println(String.format(" -Image URL: %s", artistImageNodes.item(j).getTextContent()));
        }

        XPathExpression artistNameExpr = xPathEvaluator.compile("following-sibling::artist/name");
        NodeList artistNameNodes = (NodeList) artistNameExpr.evaluate(trackNameNode, XPathConstants.NODESET);
        for (int j=0; j < artistNameNodes.getLength(); j++) {
            System.out.println(String.format(" - Artist Name: %s", artistNameNodes.item(j).getTextContent()));
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...