我的XML文件如下:(部分代码省略了)
<?xml version="1.0" encoding="utf-8"?>
<Playlist>
<List start = “08:00:00” end=”10:00:00”>
<Program type=”P+V”>
<Media type =”P” x=”0” y=”0” w=”100” h=”100”>
<Clip time=”5”>1.jpg </Clip>
<Clip time=”5”>2.jpg</Clip>
</ Media >
< Media type=”V” x=”100” y=”0” w=”100” h=”100”>
<Clip>video/1.avi</Clip>
<Clip>video/2.avi </Clip>
</ Media >
</Program><Program type=”P+M”  time=”M”>
< Media type=”P” x=”0” y=”0” w=”100” h=”100”>
<Clip  time=”5”> photo/1.jpg</Clip>
<Clip  time=”5”> photo/2.jpg</Clip>
</ Media >
< Media type=”M” >
<Clip> music/1.mp3 </Clip>
<Clip> music/2.mp3</Clip>
</ Media >
</Program>
</List>
<List>
...
</List>
</Playlist>而网上看到的大多数是类似于下面的XML文件的SAX解析方法
<?xml version="1.0" encoding="utf-8"?>
<stundets>
<student id="123456">
<name>张三</name>
<speciality>计算机</speciality>
</student>
<student id="111111">
...
</student>
</stundets>
我想问的是,我的XML文件解析后的数据能否用ArrayList<Playlist>存储,如果能,那么Playlist类该如何写呢;如果不能,那么该怎么办呢???
谢谢

解决方案 »

  1.   

    非常简单的问题,可以使用ArrayList存储。
    PlayList写成一个JavaBean的结构就可以了,里面的属性就是xml文档中一个成员的属性,但是记得里面的Media,Clip等是不能使用一个简单属性表示的,那么,Media也应该是一个类,而PlayList有Media这个属性。
      

  2.   

    首先,非常感谢
    不过我不知道JavaBean是怎么回事,所以再问一下,是不是要定义List,Program,Media和Clip四个类??
    还有就是,比如,在Media类中是否需要定义两个Clip类型的引用变量???
    谢谢
      

  3.   

    这里的javaBean你就看每个对象的属性,比如上面的Students,它的属性(成员变量)就有三个:id、name和speciality。根据上面这三个属性,你就可以写一个javaBean.说直了就是一个类:如下:public class Students{
    int id;
    String name;
    String speciality;public void setId(ind id){
    this.id=id;
    }
    public int getId(){
    return id;
    }
    public void setName(String name){
    this.name=name;
    }
    public String getName(){
    return name;
    }
    public void setSpecality(String specality){
    this.specality=specality;
    }
    public String getSpecality(){
    return specality;
    }
      

  4.   

    六楼的大侠能不能写一下Playlist这个类啊?
    或者List,或者Program类??
    不知道Media类中是否需要定义两个Clip类型的引用变量,还是定义成数组类型呢??
      

  5.   

    package com.Xml;import java.util.List;import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;import com.Model.Mp3Info;public class Mp3ListContentHandler extends DefaultHandler {
    private List<Mp3Info> infos = null;
    private Mp3Info mp3info = null;
    private String tagname; @Override
    public void characters(char[] ch, int start, int length)
    throws SAXException {
    String temp=new String(ch,start,length);
    if(tagname.equals("id")){
    mp3info.setId(temp);
    }else if(tagname.equals("mp3.name")){
    mp3info.setMp3name(temp);
    }else if(tagname.equals("mp3.size")){
    mp3info.setMp3size(temp);
    }
    } @Override
    public void endDocument() throws SAXException {
    // TODO Auto-generated method stub
    super.endDocument();
    } public Mp3ListContentHandler(List<Mp3Info> infos) {
    super();
    this.infos = infos;
    } public List<Mp3Info> getInfos() {
    return infos;
    } public void setInfos(List<Mp3Info> infos) {
    this.infos = infos;
    } @Override
    public void endElement(String uri, String localName, String qName)
    throws SAXException {
    if(qName.equals("resource")){
    infos.add(mp3info);
    }
    tagname="";
    } @Override
    public void startDocument() throws SAXException {

    super.startDocument();
    } @Override
    public void startElement(String uri, String localName, String qName,
    Attributes attributes) throws SAXException {
    this.tagname=localName;
    if(tagname.equals("resource")){
    mp3info=new Mp3Info();
    }
    }}
    package com.Model;public class Mp3Info {
    public Mp3Info(String id, String mp3name, String mp3size) {
    super();
    this.id = id;
    this.mp3name = mp3name;
    this.mp3size = mp3size;
    } public Mp3Info() {
    super();
    } @Override
    public String toString() {
    return "Mp3Info [id=" + id + ", mp3name=" + mp3name + ", mp3size="
    + mp3size + "]";
    } public String getId() {
    return id;
    } public void setId(String id) {
    this.id = id;
    } public String getMp3name() {
    return mp3name;
    } public void setMp3name(String mp3name) {
    this.mp3name = mp3name;
    } public String getMp3size() {
    return mp3size;
    } public void setMp3size(String mp3size) {
    this.mp3size = mp3size;
    } private String id;
    private String mp3name;
    private String mp3size;}
      

  6.   

    和六楼的差不多,我的XML文件的元素节点要比你的XML文件的元素节点要多。这时我的Playlist类和你的Mp3Info类应该有差别吧??我不知道它们的差别在哪??我想得到这方面的答案
    同样非常感谢你
      

  7.   

      <?xml version="1.0" encoding="UTF-8" ?> 
    <HeBei>
     <Sjz>
      <ViewPoint>
      <Name>西苑亭水湾</Name> 
      <ImageUrl>/hebei/Sjz/xiyuantingshuiwan.jpg</ImageUrl> 
      <VedioUrl>http://61.55.166.72/hebei/Sjz/LYSJZ0307_xiyuan.3gp</VedioUrl> 
      </ViewPoint>
    </Sjz>
    - <Ts>
    - <ViewPoint>
      <Name>李大钊纪念馆</Name> 
      <ImageUrl /> 
      <VedioUrl>http://61.55.166.72/hebei/Ts/LYTS0301_lidazhao.3gp</VedioUrl> 
      </ViewPoint>
    </Ts>这用的XML 又该如何解析  拿到Sjz  数据Ts不要 是不是 改star和end?