0

どうすればAndroidでこのxmlファイルを解析して大きな画像のURLを取得できますか

<image size="small">http://userserve-ak.last.fm/serve/34/62210477.png</image> <image size="medium">http://userserve-ak.last.fm/serve/64/62210477.png</image>
<image size="large">http://userserve-ak.last.fm/serve/126/62210477.png</image>

ICSやJellyBeanなどの新しいAndroidバージョンでimagesize= "large"のURLにアクセスするための最良の方法は何ですか*編集された質問* 回答で提供されたリンクとして私は今私のxmlファイルに従っていくつかの変更を加えましたiiデータを取得しますが、URLにアクセスしたい大きな画像の大きな画像のURLを取得するために必要な変更

変更するコード(私は思う)

@Override
public void startElement(String uri, String localName, String qName,
        Attributes attributes) throws SAXException {
    elementOn = true;
    if (localName.equals("artist"))
    {
        data = new XMLGettersSetters();
    } else if (localName.equals("image")) {
        /** 
         * We can get the values of attributes for eg. if the CD tag had an attribute( <CD attr= "band">Akon</CD> ) 
         * we can get the value "band". Below is an example of how to achieve this.
         * 
         * String attributeValue = attributes.getValue("attr");
         * data.setAttribute(attributeValue);
         * 
         * */
    }
}
/** 
 * This will be called when the tags of the XML end.
 **/
@Override
public void endElement(String uri, String localName, String qName)
        throws SAXException {
    elementOn = false;
    /** 
     * Sets the values after retrieving the values from the XML tags
     * */ 
    if (localName.equalsIgnoreCase("name"))
        data.setTitle(elementValue);
    else if (localName.equalsIgnoreCase("listeners"))
        data.setArtist(elementValue);
    else if (localName.equalsIgnoreCase("url"))
        data.setCountry(elementValue);
    else if (localName.equalsIgnoreCase("image"))
        data.setCompany(elementValue);
    }
/** 
 * This is called to get the tags value
 **/
@Override
public void characters(char[] ch, int start, int length)
        throws SAXException {
    if (elementOn) {
        elementValue = new String(ch, start, length);
        elementOn = false;
    }
}

助けてくださいありがとう

4

4 に答える 4

1

これを試して:

    XMLParser parser = new XMLParser();
    String URL = "http://ws.audioscrobbler.com/2.0/?method=artist.gettopalbums&artist=akon&api_key=your_api_key";
    String xml = parser.getXmlFromUrl(URL); // getting XML
    Document doc = parser.getDomElement(xml); // getting DOM element

    NodeList nl = doc.getElementsByTagName("album");

    for (int i = 0; i < nl.getLength(); i++) {
        Element e = (Element) nl.item(i);
        Log.e("name", parser.getValue(e, "name"));
        NodeList k = e.getElementsByTagName("image");
        for (int j = 0; j < k.getLength(); j++) {
            Element e1 = (Element) k.item(j);
            if(e1.getAttribute("size").equals("large"))
            Log.e("ImageURL", parser.getValue(e1, "image"));
        }
    }
于 2013-04-10T15:13:30.683 に答える
0

この目的にはSaxまたはdomパーサーを使用できます。メモリフットプリントが少なく高速であるため、Saxパーサーをお勧めします。

例の詳細については、このリンクを確認してください

@Override 
  public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {

      //do some checking.

      if(atts.getValue("size").equals("large")&&localName.equals("Image"))
      {
            //do some action
      }; 

  } 
于 2012-09-24T10:10:46.467 に答える
0
    public static String getTextValue(Element ele, String tagName) {
    String textVal = "";
    NodeList nl = ele.getElementsByTagName(tagName);
    if(nl != null && nl.getLength() > 0) {
        Element el = (Element)nl.item(0);
        if(el.getFirstChild()!=null)    
        {
            textVal = el.getFirstChild().getNodeValue();
        }
    }
    return textVal;
}

or try using ele.getAttribute(tagName)

上記の方法で要素ノードとタグ名「image」を入力します。

于 2012-09-24T10:12:24.877 に答える
0

画像のURLをxmlのURLから文字列に解析し、その文字列を目的に応じて使用します。

jsoup.orgからjsoupを見ることができます。私はそれをいくつかのプロジェクトで使用していて、満足しています。

于 2012-09-24T10:13:06.043 に答える