Android解析XML(一)--使用本地资源

使用XML本地资源
1.如果我们采用android自带的Pull解析方法的话,我们可以将xml文件以xml资源的形式存在。即就是在res目录下建立一个xml文件夹,并将文件放在里面。之后我们用getXml方法获取资源(返回类型为XmlResourceParser)。接下来,我们就可以进行解析啦!
示例代码:

int counter=0;
    StringBuilder sb=new StringBuilder("");
    Resources r=getResources();
    XmlResourceParser xrp=r.getXml(R.xml.test);
    try{
     while(xrp.getEventType()!=XmlResourceParser.END_DOCUMENT){
      if(xrp.getEventType()==XmlResourceParser.START_TAG){
       String name=xrp.getName();
       if(name.equals("customer")){
        counter++;
        sb.append("第"+counter+"条客户消息:");
        sb.append(xrp.getAttributeValue(0)+"\n");
        sb.append(xrp.getAttributeValue(1)+"\n");
        sb.append(xrp.getAttributeValue(2)+"\n");
        sb.append(xrp.getAttributeValue(3)+"\n\n");
       }else if(xrp.getEventType()==XmlResourceParser.END_TAG){
        
       }else if(xrp.getEventType()==XmlResourceParser.TEXT){
        
       }
      }
      xrp.next();
     }
     mTextView.setText(sb);
    }catch(XmlPullParserException e){
     e.printStackTrace();
    }catch(IOException e){
     e.printStackTrace();
    }    
   }});
    }

 


2.如果我们想使用java的SAX来解析XML,我们可以将xml拷贝到项目文件夹下的assets文件夹下,之后调用getAssets()(getResources().getAssets().open("test.xml");)方法来实现。
示例代码:
(1)解析代码

try{
        SAXParserFactory factory=SAXParserFactory.newInstance();
        XMLReader reader=factory.newSAXParser().getXMLReader();
        
        InputStream xml=this.getResources().getAssets().open("test.xml");
        //InputStream result=new FileInputStream(xml);
        PaperDetailHandler myHandler= new PaperDetailHandler();
        reader.setContentHandler(myHandler);//MyContentHandler is up to you
        
        reader.parse(new InputSource(xml));
        Info result=myHandler.getInfo();
        String sample=result.getSample();
        CharSequence charSequence=Html.fromHtml(sample); 
        txt.setText(charSequence);
        }catch(Exception e)
        {
            txt.setText(e.toString());
        }
        
        //setContentView(R.layout.activity_main);
        this.setContentView(txt);

 


(2)其中PaperDetailHandler为DefaultHandler的实现,Info为xml文档中的最高父类元素映射类。

转载于:https://www.cnblogs.com/Jerry-Ru/archive/2012/09/19/Android_xml.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值