Android 解析XML并将子节点的值赋给字符串
我想在XML中给出一个子节点的值,它是一个URL,然后将这个值放在一个字符串中。在解析XML后,我使用HashMap将映射放入列表(songList)中。xml中的thumb_url包含url的值,我想将该值放入一个名为“link”的字符串中 以及: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
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);
}