帮忙解析XML
<?xml version="1.0" encoding="utf-8" ?>- <RequestResult>
<PID>004</PID>
<IsOK>true</IsOK>
- <EpisodesList>
- <item>
<EpisodesID>57</EpisodesID>
<PicUrl>http://mantou.tv/upload_files/mp/video_info/1332573378sq2.jpg</PicUrl>
<Name>三七小福星之乾坤大作战</Name>
<Rate>8</Rate>
<Count>26</Count>
</item>
- <item>
<EpisodesID>27</EpisodesID>
<PicUrl>http://mantou.tv/upload_files/mp/video_info/1332554557sm.jpg</PicUrl>
<Name>蓝猫龙骑团之生命之花</Name>
<Rate>8</Rate>
<Count>48</Count>
</item>
- <item>
<EpisodesID>50</EpisodesID>
<PicUrl>http://mantou.tv/upload_files/mp/video_info/1332569712mm.jpg</PicUrl>
<Name>毛毛王历险记</Name>
<Rate>9</Rate>
<Count>52</Count>
</item>
</EpisodesList>
</RequestResult>
谁能帮我解析了这个XML?要源码。 --------------------编程问答-------------------- 给你一个示例吧,,
Android XML解析在assert,res资源文件夹下,和在磁盘上的访问方法是不一样的
public List<Building> readXMLByDOM(Context context) throws Exception--------------------编程问答-------------------- 手机上的解析,最好使用SAX 或者 PULL,使用DOM解析太耗内存了 --------------------编程问答-------------------- 我用json,方便更新 --------------------编程问答--------------------
{
List<Building> bldList = new ArrayList<Building>();
InputStream inStream=null;
try
{
// inStream=myResources.openRawResource(R.raw.testxml);
inStream = context.openFileInput("info.xml");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(inStream);
doc.normalize();// 去掉不必要的空白
NodeList nodeList = doc.getElementsByTagName("building");
for (int i = 0; i < nodeList.getLength(); i++) //Buildings集合
{
Element personNode = (Element) nodeList.item(i); //拿到第一个building
Building bld = new Building();
NodeList childsNodes = personNode.getChildNodes();
for (int j = 0; j < childsNodes.getLength(); j++) //Building下结点参数
{
Node nodeB = (Node) childsNodes.item(j); // 判断是否为元素类型
if (nodeB.getNodeType() != Node.ELEMENT_NODE) continue;
Element nBuild = (Element) nodeB;
if ("name".equals(nBuild.getNodeName())){// 判断是否name元素
bld.setName(nBuild.getFirstChild().getNodeValue()); // 获取name元素下Text节点,然后从Text节点获取数据
}
else if ("pid".equals(nBuild.getNodeName())) {
bld.setPid(nBuild.getFirstChild().getNodeValue());
}
else if("rooms".equals(nBuild.getNodeName()))//找到rooms结点
{
NodeList rNodes=nBuild.getChildNodes();
for(int k=0;k<rNodes.getLength();k++)//Building下的Rooms集合
{
补充:移动开发 , Android