当前位置:编程学习 > wap >>

帮忙解析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
{
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集合
                     {
--------------------编程问答-------------------- 手机上的解析,最好使用SAX 或者 PULL,使用DOM解析太耗内存了 --------------------编程问答-------------------- 我用json,方便更新 --------------------编程问答--------------------
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,