SimpleXml 加深巩固

看到上一篇文章后,很多人跟我反应说解析部分看不懂(哈哈,博主自淫),故这篇文章将贴出更多示例,以便来巩固SimpleXml的相关注解用法。 废话不多说,上马。

看到上一篇文章后,很多人跟我反应说解析部分看不懂(哈哈,博主自淫),故这篇文章将贴出更多示例,以便来巩固SimpleXml的相关注解用法。
废话不多说,上马。


  • 示例一
    可通过一下路径访问
    http://www.digi24.ro/rss/Stiri/Digi24/
<rss version="2.0"> <channel> <item> <title>Atenționare cod galben de furtuni pentru 16 județetitle>  <link>http://www.digi24.ro/Stiri/Digi24/Actualitate/Stiinta+si+Mediu/Vreme+rece+in+toata+taralink>  <guid>http://www.digi24.ro/Stiri/Digi24/Actualitate/Stiinta+si+Mediu/Vreme+rece+in+toata+taraguid>  <description>  description>  <category>Stiinta si Mediucategory>  <pubDate>Wed, 20 Apr 2016 08:12:37 +0300pubDate>  <enclosure url="http://www.digi24.ro/onedb/picture(width=200)/57170fbf682ccf45917e8587" length="1" type="image/jpeg"/> item>  ……(略去一大片item)item> channel> 
rss>
步骤一
@Root(name = "rss", strict = false)
public class Digi24RSS {@Element(name = "channel")public Digi24Channel digi24Channel;
}
步骤二
@Root(name = "channel", strict = false)
public class Digi24Channel {@ElementList(name = "item", inline = true)public List digi24Items;
}
步骤三
@Root(name = "item", strict = false)
public class Digi24Items {@Element(name = "title")public String title;@Element(name = "enclosure", required = true)public Digi24Enclosure imageUrl;@Element(name = "pubDate")public String publicationDate;
}
步骤四
@Root(name = "enclosure", strict = false)
public class Digi24Enclosure {@Attribute(name = "url")public String imageUrl;
}
打完收工。
  • 示例二

http://webservices.nextbus.com/service/publicXMLFeed?command=routeList&a=sf-muni


<body copyright="All data copyright San Francisco Muni 2016."> <route tag="E" title="E-Embarcadero"/>  <route tag="F" title="F-MarketWharves"/>  <route tag="J" title="J-Church"/>  <route tag="KT" title="KT-Ingleside/Third Street"/>  <route tag="L" title="L-Taraval"/>  <route tag="M" title="M-Ocean View"/>  ……<route tag="61" title="California Cable Car"/> 
body>

步骤一

@Root(name = "body", strict=false)
public class RouteList {@ElementList(required=true, inline=true, entry="route")public List routes;}

步骤二

@Root(name="route", strict=false)
public class RouteWrapper {@Attribute(name="tag", required=true)public String id;@Attribute(name="title", required=true)public String title;public String toString() {return this.id + " - " + this.title;}}

收工!


  • 示例三

http://webservices.nextbus.com/service/publicXMLFeed?command=routeConfig&a=sf-muni

<body copyright="All data copyright San Francisco Muni 2016."> <route tag="E" title="E-Embarcadero" color="667744" oppositeColor="ffffff" latMin="37.7528099" latMax="37.8085899" lonMin="-122.41737" lonMax="-122.38682"> <stop tag="5184" title="Jones St Beach St" lat="37.8072499" lon="-122.41737" stopId="15184"/>  <stop tag="3092" title="Beach S Mason St" lat="37.80741" lon="-122.4141199" stopId="13092"/>  <stop tag="3095" title="Beach St Stockton St" lat="37.8078399" lon="-122.41081" stopId="13095"/>  <stop tag="37440" title="Metro East" lat="37.7528099" lon="-122.38682" stopId="137440"/>  <direction tag="E____O_F00" title="Outbound to King  4th" name="Outbound" useForUI="true"> <stop tag="5184"/>  <stop tag="3092"/>  <stop tag="3095"/>  <stop tag="4502"/>  <stop tag="4529"/>  <stop tag="4516"/>  <stop tag="4518"/>  <stop tag="4504"/>  <stop tag="4534"/>  <stop tag="7283"/>  <stop tag="7794"/>  <stop tag="4506"/>  <stop tag="5234"/>  <stop tag="5239"/> direction>  <direction tag="E____I_F00" title="Inbound to Fisherman's Wharf" name="Inbound" useForUI="true"> <stop tag="5240"/>  <stop tag="5237"/>  <stop tag="7145"/>  <stop tag="7795"/>  <stop tag="4513"/>  <stop tag="4532"/>  <stop tag="4503"/>  <stop tag="4517"/>  <stop tag="4515"/>  <stop tag="7281"/>  <stop tag="4501"/>  <stop tag="4530"/>  <stop tag="5174"/>  <stop tag="5175"/>  <stop tag="35184"/> direction> route> 
body>

步骤一

@Root(name="body", strict=false)
public class RouteDetails {@Attribute(name="tag")@Path("route")public String id;@Attribute(name="title")@Path("route")public String title;@Attribute(name="color")@Path("route")public String color;@Attribute(name="oppositeColor")@Path("route")public String oppositeColor;@ElementList(required=true, inline=true, entry="stop")@Path("route")public List routeStops;@ElementList(required=true, inline=true, entry="direction")@Path("route")public List routeDirections;
}

步骤二

@Root(name="stop", strict=false)
public class RouteStop {@Attribute(name="tag")public String id;@Attribute(name="title")public String title;@Attribute(name="lat")public String lat;@Attribute(name="lon")public String lon;
}

步骤三

@Root(name="direction", strict=false)
public class RouteDirection {@Attribute(name="tag")public String directionTag;@Attribute(name="title")public String title;@ElementList(required=true, inline=true, entry="stop")public List stops;@Attribute(name="name")public String directionBound;public ArrayList getStopList() {ArrayList stopList = new ArrayList<>();for(StopListItem stop : stops) {stopList.add(stop.id);}return stopList;}
}

散花完结!