我有以下XML内容,这是百度关于音乐文件的描述信息<?xml version="1.0" encoding="gb2312" ?>
<result>
<count>1</count>
<url>
<encode>
<![CDATA[http://zhangmenshiting.baidu.com/data2/music/6326012/Z2VlamVnaWaeomZzrZmmnJZvaJlramiak2dlZ5tqb2llZWtmZm6YnGmWaW2abGxvkpdZoZ6adGhfZGdmZmhvb2lobGtsZ2o4]]>
</encode>
<decode>
<![CDATA[6326012.mp3?xcode=5e641bb523f481438218ad8d69e657ae&mid=0.24212878697713]]>
</decode>
<type>1</type>
<lrcid>1015765</lrcid>
<flag>1</flag>
</url>
<durl>
<encode>
<![CDATA[http://zhangmenshiting2.baidu.com/data2/music/5840354/ZmpnZGhra2aeomZzrZmmnJZvaJlramiak2dlZ5tqb2llZWtmZm6YnGmWaW2abGxvkpdZoZ6adGhfZGdmZmhvb2lobGtsZ2o4]]>
</encode>
<decode>
<![CDATA[5840354.mp3?xcode=5e641bb523f481438218ad8d69e657ae&mid=0.24212878697713]]>
</decode>
<type>1</type>
<lrcid>1015765</lrcid>
<flag>1</flag>
</durl>
<p2p>
<hash>d0bc4c653d729aea651b76559c3d600661eacfbe</hash>
<url>
<![CDATA[]]>
</url>
<type>mp3</type>
<size>1866985</size>
<bitrate>64</bitrate>
</p2p>
</result>我定义好了modelpublic class ASong {
private int count;
private List<UrlInfo> urls;
private P2pInfo p2p; @Override
public String toString() {
return "ASong [count=" + count + ", urls=" + urls + ", p2p=" + p2p + "]";
}
}
public class UrlInfo {
private String encode;
private String decode;
private String type;
private String lrcid;
private String flag;
@Override
public String toString() {
return "UrlInfo [encode=" + encode + ", decode=" + decode + ", type=" + type
+ ", lrcid=" + lrcid + ", flag=" + flag + "]";
}

}
public class P2pInfo {
private String hash;
private String url;
private String type;
private String size;
private String bitrate;
@Override
public String toString() {
return "P2pInfo [hash=" + hash + ", url=" + url + ", type=" + type + ", size="
+ size + ", bitrate=" + bitrate + "]";
}
}
问题是在 p2pInfo里还有一个字段名字也叫url和外面的url不是同一个意思,请问我该如何操作呢?
我的代码如下,没办法正确执行: private void testAsong(){
String xml= "<?xml version=\"1.0\" encoding=\"gb2312\" ?><result><count>1</count><url><encode><![CDATA[http://zhangmenshiting.baidu.com/data2/music/6326012/Z2VlamVnaWaeomZzrZmmnJZvaJlramiak2dlZ5tqb2llZWtmZm6YnGmWaW2abGxvkpdZoZ6adGhfZGdmZmhvb2lobGtsZ2o4]]></encode><decode><![CDATA[6326012.mp3?xcode=5e641bb523f481438218ad8d69e657ae&mid=0.24212878697713]]></decode><type>1</type><lrcid>1015765</lrcid><flag>1</flag></url><durl><encode><![CDATA[http://zhangmenshiting2.baidu.com/data2/music/5840354/ZmpnZGhra2aeomZzrZmmnJZvaJlramiak2dlZ5tqb2llZWtmZm6YnGmWaW2abGxvkpdZoZ6adGhfZGdmZmhvb2lobGtsZ2o4]]></encode><decode><![CDATA[5840354.mp3?xcode=5e641bb523f481438218ad8d69e657ae&mid=0.24212878697713]]></decode><type>1</type><lrcid>1015765</lrcid><flag>1</flag></durl><p2p><hash>d0bc4c653d729aea651b76559c3d600661eacfbe</hash><url><![CDATA[]]></url><type>mp3</type><size>1866985</size><bitrate>64</bitrate></p2p></result>";
XStream xs = new XStream();
xs.alias("result", ASong.class);
xs.alias("url", UrlInfo.class);
xs.alias("durl", UrlInfo.class);
xs.alias("p2p", P2pInfo.class);
xs.addImplicitCollection(ASong.class, "urls");
xs.addImplicitCollection(P2pInfo.class, "url");
ASong aSong = (ASong)xs.fromXML(xml);
System.out.println(aSong);
List<UrlInfo> urlInfos = aSong.getUrls();
for (UrlInfo urlInfo : urlInfos) {
System.out.println(urlInfo);
}
}
有大虾们指教,谢谢