Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 解析XML并将子节点的值赋给字符串_Android_Xml_Xml Parsing_Android Xml - Fatal编程技术网

Android 解析XML并将子节点的值赋给字符串

Android 解析XML并将子节点的值赋给字符串,android,xml,xml-parsing,android-xml,Android,Xml,Xml Parsing,Android Xml,我想在XML中给出一个子节点的值,它是一个URL,然后将这个值放在一个字符串中。在解析XML后,我使用HashMap将映射放入列表(songList)中。xml中的thumb_url包含url的值,我想将该值放入一个名为“link”的字符串中 以及: ArrayList songsList=new ArrayList(); XMLParser=新的XMLParser(); 字符串xml=parser.getXmlFromUrl(URL);//从URL获取XML Document doc=pars

我想在XML中给出一个子节点的值,它是一个URL,然后将这个值放在一个字符串中。在解析XML后,我使用HashMap将映射放入列表(songList)中。xml中的thumb_url包含url的值,我想将该值放入一个名为“link”的字符串中

以及:

ArrayList songsList=new ArrayList();
XMLParser=新的XMLParser();
字符串xml=parser.getXmlFromUrl(URL);//从URL获取XML
Document doc=parser.getdoElement(xml);//获取DOM元素
NodeList nl=doc.getElementsByTagName(KEY_-SONG);
//循环通过所有歌曲节点
对于(int i=0;ivalue
put(KEY_ID,parser.getValue(e,KEY_ID));
put(KEY_TITLE,parser.getValue(e,KEY_TITLE));
put(KEY_-ARTIST,parser.getValue(e,KEY_-ARTIST));
put(KEY_DURATION,parser.getValue(e,KEY_DURATION));
put(KEY_THUMB_URL,parser.getValue(e,KEY_THUMB_URL));
//将哈希列表添加到ArrayList
歌曲列表。添加(地图);
}
实际上,我想在按下歌曲列表的行后,给“new DownloadFileFromURL().execute(link);”提供一个链接。 向大家问好。

我找到了答案

诀窍是我应该传递链接表单适配器。我将一个标记添加到适配器的
getView()
视图中<代码>视图.setTag(song.get(MainActivity.KEY_LINK))。然后通过
String Link=view.getTag().toString()在主活动中获取该值


我希望这能帮助一些人:)

您使用的是什么XML解析器?
    // XML node keys
static final String KEY_SONG = "song"; // parent node
static final String KEY_ID = "id";
static final String KEY_TITLE = "title";
static final String KEY_ARTIST = "artist";
static final String KEY_DURATION = "duration";
static final String KEY_THUMB_URL = "thumb_url";
    ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();

    XMLParser parser = new XMLParser();
    String xml = parser.getXmlFromUrl(URL); // getting XML from URL
    Document doc = parser.getDomElement(xml); // getting DOM element

    NodeList nl = doc.getElementsByTagName(KEY_SONG);
    // looping through all song nodes <song>
    for (int i = 0; i < nl.getLength(); i++) {
        // creating new HashMap
        HashMap<String, String> map = new HashMap<String, String>();
        Element e = (Element) nl.item(i);
        // adding each child node to HashMap key => value
        map.put(KEY_ID, parser.getValue(e, KEY_ID));
        map.put(KEY_TITLE, parser.getValue(e, KEY_TITLE));
        map.put(KEY_ARTIST, parser.getValue(e, KEY_ARTIST));
        map.put(KEY_DURATION, parser.getValue(e, KEY_DURATION));
        map.put(KEY_THUMB_URL, parser.getValue(e, KEY_THUMB_URL));



        // adding HashList to ArrayList
        songsList.add(map);

    }